How teamproject-69-01-ct05/game-git-diwaa works
Git-Diwaa is a Godot game that teaches Git through a player sandbox backed by real Git, with terminal and workspace UI; it also includes a separate online account service. The README documents the game’s major UI and gameplay areas, while the sampled source gives clearer call-level evidence for the server’s account flow. Sandbox internals and several game features were not sampled, so their nodes use existing feature directories and only documented relationships are shown.
Main entry points: AccountService.cs Account service · sandbox Sandbox UI · game Godot game UI · InMemory In-memory stores
Components 25
Game experience
- Godot game UI
game - Start and dressing
game/features/start - Story cutscenes
game/features/cutscene - Level select
game/features/level_select - Level dialogue
game/features/dialogue - Level missions
game/features/level_mission
Git sandbox engine
- Sandbox UI
game/features/sandbox - Files workspace
game/features/sandbox - Terminal CLI
game/engine/cli - Real Git engine
game/engine/real_git - Git contracts
game/engine/core - Remote repository
game/features/remote_repo
Account service
- Auth client
game/features/auth/services - Account API
server/src/GitDiwaa.Server/Accounts/AccountEndpoints.cs - Account service
server/src/GitDiwaa.Server/Accounts/AccountService.cs - Account validation
server/src/GitDiwaa.Online/Accounts/AccountInputValidator.cs - Account rules
server/src/GitDiwaa.Online/Accounts/AccountRules.cs - Session filter
server/src/GitDiwaa.Server/Security/RequireSessionFilter.cs - Session tokens
server/src/GitDiwaa.Server/Security/SessionTokenService.cs - User repository
server/src/GitDiwaa.Server/Persistence/IUserRepository.cs - Session repository
server/src/GitDiwaa.Server/Persistence/ISessionRepository.cs - Consent repository
server/src/GitDiwaa.Server/Persistence/IConsentRepository.cs - In-memory stores
server/src/GitDiwaa.Server/Persistence/InMemory
Other components
- Player
- Online player
Connections 26
- Player → Godot game UI: plays
README.md - Godot game UI → Start and dressing: opens
README.md - Godot game UI → Sandbox UI: opens
README.md - Sandbox UI → Files workspace: includes
README.md - Sandbox UI → Terminal CLI: includes
README.md - Sandbox UI → Real Git engine: uses
README.md - Sandbox UI → Remote repository: offers
README.md - Terminal CLI → Real Git engine: runs commands
README.md - Real Git engine → Git contracts: uses contracts
README.md - Player → Level select: selects levels
- Level select → Level missions: presents
- Level select → Level dialogue: presents
- Godot game UI → Story cutscenes: shows
- Online player → Auth client: uses
- Account API → Account service: dispatches
server/src/GitDiwaa.Server/Accounts/AccountEndpoints.cs - Account service → Account validation: validates
server/src/GitDiwaa.Server/Accounts/AccountService.cs - Account validation → Account rules: checks rules
server/src/GitDiwaa.Online/Accounts/AccountInputValidator.cs - Account API → Session filter: filters sessions
server/src/GitDiwaa.Server/Accounts/AccountEndpoints.cs - Session filter → Account service: validates session
server/src/GitDiwaa.Server/Security/RequireSessionFilter.cs - Account service → Session tokens: issues tokens
server/src/GitDiwaa.Server/Accounts/AccountService.cs - Account service → User repository: reads and writes
server/src/GitDiwaa.Server/Accounts/AccountService.cs - Account service → Session repository: reads and writes
server/src/GitDiwaa.Server/Accounts/AccountService.cs - Account service → Consent repository: uses consent
server/src/GitDiwaa.Server/Accounts/AccountService.cs - In-memory stores → User repository: implements
server/src/GitDiwaa.Server/ServerApp.cs - In-memory stores → Session repository: implements
server/src/GitDiwaa.Server/ServerApp.cs - In-memory stores → Consent repository: implements
server/src/GitDiwaa.Server/ServerApp.cs