--- type: Reference title: Source Code Map & Navigation Directory description: Practical navigation guide mapping source files across projects to system domains and responsibilities. tags: [source-map, navigation, directory, projects] --- # Source Code Map & Navigation Directory This directory maps every major project, folder, and source file in the SlipItIn repository to its system domain and technical responsibility. This navigation map [indexes backend architecture files described in](/openwiki/architecture/overview.md) the system architecture, [indexes domain model files defined in](/openwiki/domain/game-mechanics.md) the domain mechanics guide, [indexes workflow implementation files detailed in](/openwiki/workflows/slip-and-challenge.md) the workflow guide, and [indexes operational configuration files documented in](/openwiki/operations/runbook.md) the operations runbook. --- ## 1. Solution Projects (`SlipItIn.slnx`) ``` SlipItIn.slnx ├── SlipItIn.AppHost/ # Aspire distributed orchestrator ├── SlipItIn.Server/ # Web API & SignalR real-time server ├── SlipItIn.Shared/ # Shared models & data transfer objects ├── SlipItIn.ServiceDefaults/ # Aspire OpenTelemetry & health checks ├── SlipItIn/ # .NET MAUI multi-platform client └── Agents/ # Architecture & planning briefs ``` --- ## 2. Directory & Source File Map ### `.NET Aspire Orchestration` (`SlipItIn.AppHost`) - **`AppHost.cs`**: Orchestrates application dependencies. Configures PostgreSQL (`AddPostgres("pgsql")`), references `SlipItIn.Server`, and links the MAUI client. - **`appsettings.json`**: Aspire orchestrator configuration. ### `Service Defaults & Telemetry` (`SlipItIn.ServiceDefaults`) - **`Extensions.cs`**: Implements `AddServiceDefaults()` and `ConfigureOpenTelemetry()`. Configures OpenTelemetry logging, metrics, tracing filters (excluding `/health` and `/alive`), service discovery, and HTTP resilience handlers. ### `Backend Web API & SignalR Server` (`SlipItIn.Server`) - **`Program.cs`**: Entrypoint for ASP.NET Core server. Registers EF Core `IDbContextFactory`, JWT authentication middleware, SignalR query parameter token parsing, Npgsql PostgreSQL data source, OpenAPI, CORS policies, and automatic EF migrations. - **`Controllers/AuthController.cs`**: REST API controller providing `/api/auth/register`, `/api/auth/login`, and `/api/auth/me`. Handles BCrypt password hashing and JWT token generation. - **`Hubs/GameHub.cs`**: SignalR hub mapped to `/hubs/game`. Performs JWT claim extraction (`GetAuthenticatedUserId`), player/host authorization checks (`ValidatePlayerAccessAsync`, `ValidateHostAccessAsync`), connection ID tracking, and real-time event broadcasting. - **`Services/IGameService.cs`**: Contract interface defining backend game operations. - **`Services/GameService.cs`**: Core engine implementation. Handles game creation, player joining, card dealing from active phrases, slip submission, challenge creation, penalty resolution, and state serialization (`GetGameStateAsync`, `GetPlayerHandAsync`). - **`Data/SlipItInDbContext.cs`**: Entity Framework Core DbContext mapping `Users`, `Games`, `Players`, `Phrases`, `PlayerCards`, `GameRounds`, and `SlipChallenges` to PostgreSQL tables. - **`Migrations/`**: Auto-generated EF Core migration snapshots (`20260723193505_InitialCreate.cs`). - **`appsettings.json` & `appsettings.Development.json`**: JWT secret keys, issuer/audience defaults, and database connection strings. ### `Shared Domain & DTOs` (`SlipItIn.Shared`) - **`Models/User.cs`**: Entity storing user credentials, BCrypt password hashes, and user state. - **`Models/Game.cs`**: Entity storing lobby codes, status (`GameStatus`), host ID, and duration parameters. - **`Models/Player.cs`**: Entity tracking player scores, ready status, and SignalR connection IDs. - **`Models/Phrase.cs`**: Entity storing phrase text and creator metadata. - **`Models/GameRound.cs`**: Entity tracking round numbers and status (`RoundStatus`). - **`Models/PlayerCard.cs`**: Entity linking phrases to players for specific rounds (`IsUsed` flag). - **`Models/SlipChallenge.cs`**: Entity recording accusations, challenging/target player IDs, and challenge status (`ChallengeStatus`). - **`DTOs/AuthDtos.cs`**: DTOs for authentication (`RegisterRequestDto`, `LoginRequestDto`, `AuthResponseDto`). - **`DTOs/GameStateDto.cs`**: DTOs for public state (`GameStateDto`, `PlayerInfoDto`), private hand state (`PlayerHandDto`, `PlayerCardDto`), and challenge alerts (`SlipChallengeDto`). ### `Cross-Platform MAUI Client` (`SlipItIn`) - **`MauiProgram.cs`**: Client builder configuring MAUI app shell, fonts, and logging debug extensions. - **`App.xaml` & `App.xaml.cs`**: Root MAUI application class. - **`AppShell.xaml` & `AppShell.xaml.cs`**: AppShell routing container. - **`MainPage.xaml` & `MainPage.xaml.cs`**: Initial entry view. - **`Platforms/`**: Platform-specific entry points for Android, iOS, MacCatalyst, and Windows. ### `Documentation & Specifications` (`Agents/`) - **`Agents/Architecture.md`**: Specification document defining Phase 2b backend security (JWT validation, `IDbContextFactory`, privacy DTOs) and Phase 3b MAUI stability patterns (`WeakReferenceMessenger`, auto-reconnect, dual-layer storage). - **`Agents/ProjectPlan.md`**: Project plan breakdown covering phases 1 through 4.