
eva-api-codebase
by marcusshepp
SKILL.md
name: eva-api-codebase description: Navigate and understand the EvaAPI codebase structure. Use when searching for models, services, controllers, migrations, or any code related to Eva database entities. Helps locate where specific features are implemented. metadata: author: michigan-senate version: "1.0" codebase: "C:/Users/mshepherd/p/leb/EvaAPI"
EvaAPI Codebase Navigation Skill
This skill helps you navigate the EvaAPI .NET Core application codebase located at C:\Users\mshepherd\p\leb\EvaAPI.
Project Structure
Core Directories
C:\Users\mshepherd\p\leb\EvaAPI\
├── Data\ # Database context and entity models
│ ├── EvaDbContext.cs # Main DbContext with all DbSets
│ └── Models\ # Entity models organized by domain
│ ├── Committees\ # Committee-related entities
│ │ └── CommitteeReports\ # Committee report entities
│ ├── Calendar\ # Calendar entities
│ ├── Journal\ # Journal entities
│ └── Sessions\ # Session entities
│
├── Services\ # Business logic services
│ ├── CommitteeManagement\ # Committee-related services
│ │ └── CommitteeReports\ # Committee report services
│ ├── CalendarManagement\ # Calendar services
│ └── JournalManagement\ # Journal services
│
├── Controllers\ # API endpoints
│ ├── CommitteeReportsController.cs
│ ├── SessionsController.cs
│ └── CalendarController.cs
│
├── Dtos\ # Data Transfer Objects
│ ├── CommitteeReports\ # DTOs for committee reports
│ └── Calendar\ # DTOs for calendar
│
├── Migrations\ # EF Core database migrations
│ └── EvaDbContextModelSnapshot.cs # Current DB schema snapshot
│
├── Interfaces\ # Service interfaces
├── Utilities\ # Helper classes
├── Extensions\ # Extension methods
├── Filters\ # API filters
├── Mapping\ # AutoMapper profiles
└── Settings\ # Configuration classes
Finding Code by Feature
Database Entities (Models)
Location: Data\Models\[Domain]\
Examples:
Data\Models\Committees\CommitteeReports\CommitteeReport.csData\Models\Committees\CommitteeReports\CommitteeReportCommitteeAction.csData\Models\Sessions\Session.cs
How to find:
# Find entity by name
cd C:\Users\mshepherd\p\leb\EvaAPI
Get-ChildItem -Path Data\Models -Recurse -Filter "*CommitteeReport*.cs"
# Find all models in a domain
Get-ChildItem -Path Data\Models\Committees -Recurse -Filter *.cs
Database Context
Location: Data\EvaDbContext.cs
Contains all DbSet<T> declarations that map to database tables.
Example DbSets:
DbSet<CommitteeReport> CommitteeReportsDbSet<CommitteeReportCommitteeAction> CommitteeReportCommitteeActionsDbSet<Session> Sessions
Services (Business Logic)
Location: Services\[Domain]\
Examples:
Services\CommitteeManagement\CommitteeReports\CommitteeReportAgendaItemService.csServices\CommitteeManagement\CommitteeReports\CommitteeReportService.csServices\SessionManagement\SessionService.cs
How to find:
# Find service by feature
Get-ChildItem -Path Services -Recurse -Filter "*CommitteeReport*.cs"
# Search for specific method usage
Select-String -Path Services\**\*.cs -Pattern "GetAvailableActions"
Controllers (API Endpoints)
Location: Controllers\
Examples:
Controllers\CommitteeReportsController.csControllers\SessionsController.cs
How to find:
# List all controllers
Get-ChildItem -Path Controllers -Filter *.cs
# Find controller by feature
Get-ChildItem -Path Controllers -Filter "*CommitteeReport*.cs"
Migrations
Location: Migrations\
Pattern: {Timestamp}_{Description}.cs
Examples:
Migrations\20240607134553_2968__CommitteeReportsRewrite.csMigrations\20240820204656_3881_committee-report-additional-actions.cs
Current Schema: Migrations\EvaDbContextModelSnapshot.cs
How to find migrations for a table:
# Find migrations that reference a specific table
Select-String -Path Migrations\*.cs -Pattern "CommitteeReportCommitteeActions" | Select-Object -First 5
Common Search Patterns
Find where a table is used
cd C:\Users\mshepherd\p\leb\EvaAPI
# Search all C# files (excluding migrations)
Get-ChildItem -Recurse -Filter *.cs -Exclude *Migration*,*Designer* |
Select-String -Pattern "CommitteeReportCommitteeActions" -SimpleMatch
Find entity model and its usage
# 1. Find the entity model
Get-ChildItem -Path Data\Models -Recurse -Filter "*CommitteeReport*.cs"
# 2. Find services using it
Get-ChildItem -Path Services -Recurse -Filter *.cs |
Select-String -Pattern "CommitteeReport"
# 3. Find controllers using it
Get-ChildItem -Path Controllers -Filter *.cs |
Select-String -Pattern "CommitteeReport"
Find DTOs for a feature
Get-ChildItem -Path Dtos -Recurse -Filter "*CommitteeReport*.cs"
Search for specific code patterns
# Find all DbSet declarations
Select-String -Path Data\EvaDbContext.cs -Pattern "DbSet<"
# Find all API endpoints for a feature
Select-String -Path Controllers\CommitteeReportsController.cs -Pattern "\[Http"
Entity Naming Conventions
Database Tables
- Plural:
CommitteeReports,CommitteeReportActions,Sessions - Snake_case in old tables, PascalCase in newer tables
C# Entities
- Singular class name:
CommitteeReport,CommitteeReportAction,Session - File matches class name:
CommitteeReport.cs
DbSet Properties
- Plural:
CommitteeReports,CommitteeReportActions - Declared in
EvaDbContext.cs
Key Files
Main Entry Points
Program.cs- Application startup and configurationappsettings.json- Production configurationappsettings.development.json- Development configuration (has connection strings)
Database
Data\EvaDbContext.cs- Database context with all tablesMigrations\EvaDbContextModelSnapshot.cs- Current complete schema
Configuration
Settings\JwtSettings.cs- JWT authentication settingsSettings\EmailSettings.cs- Email configuration
Tips for Code Navigation
- Start with the entity model - Find in
Data\Models\to understand the structure - Check EvaDbContext.cs - Verify the DbSet exists and see navigation properties
- Find the service - Look in
Services\for business logic - Find the controller - Look in
Controllers\for API endpoints - Check migrations - See how the table evolved over time
Common File Locations by Feature
Committee Reports
- Models:
Data\Models\Committees\CommitteeReports\ - Services:
Services\CommitteeManagement\CommitteeReports\ - Controllers:
Controllers\CommitteeReportsController.cs - DTOs:
Dtos\CommitteeReports\
Sessions
- Models:
Data\Models\Sessions\ - Services:
Services\SessionManagement\ - Controllers:
Controllers\SessionsController.cs
Calendar
- Models:
Data\Models\Calendar\ - Services:
Services\CalendarManagement\ - Controllers:
Controllers\CalendarController.cs
Useful PowerShell Commands
See SEARCH-COMMANDS.md for comprehensive search examples.
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon