How peter-mghendi/karata works
Karata is a real-time Kenyan card-game product, with browser and experimental desktop clients, plus separate trivia, bot, platform, and link-shortening services. The main workflow is a player using the web client and SDK to reach the Cards server for room and turn gameplay; the server registers the game engine and SignalR hubs. The README documents chat, replays, reconnection, resumable games, and learner mode. Only selected source was sampled, so uncertain internal service-to-handler and persistence wiring is omitted.
Main entry points: Karata.Cards/Program.cs Cards server · Karata.Web/Program.cs Web client · Karata.Trivia/Program.cs Trivia service · DependencyInjection.cs Runtime framework
Components 23
Clients and SDK
- Web client
src/Karata.Web/Program.cs - Desktop client
src/Karata.Desktop/Program.cs - Cards SDK
src/Karata.Kit/Cards/Client.cs - Surface UI kit
src/Karata.Surface/DependencyInjection.cs
Cards gameplay
- Cards server
src/Karata.Cards/Program.cs - Cards endpoints
src/Karata.Cards/Endpoints.cs - Live game hubs
src/Karata.Cards/Hubs/PlayerHub.cs - Room and turn services
src/Karata.Cards/Services/TurnProcessingServiceFactory.cs - Replay services
src/Karata.Cards/Services/ReplaySessionRunner.cs - Rules engine
src/Karata.Kit/Cards/Engine/TwoPassKarataEngine.cs - Card primitives
src/Karata.Pips/Deck.cs - Cards database
src/Karata.Cards/Data/CardsContext.cs - Bot sessions
src/Karata.Runtime/Bot/Services/BotSessionManager.cs - Bot strategies
src/Karata.Kit/Bot/Strategy/IBotStrategy.cs
Shared services
- User and activity
src/Karata.Platform/Program.cs - Platform database
src/Karata.Platform/Data/PlatformContext.cs
Other products
- Trivia service
src/Karata.Trivia/Program.cs - Trivia gameplay
src/Karata.Trivia/Controllers/ResponseController.cs - Trivia notifications
src/Karata.Trivia/Hubs/NotificationHub.cs - Link shortener
src/Karata.Go/Program.cs - Links database
src/Karata.Go/Data/GoContext.cs
Runtime foundation
- Runtime framework
src/Karata.Runtime/DependencyInjection.cs
Other components
- Player
Connections 23
- Player → Web client: uses
- Web client → Cards SDK: configures
- Web client → Surface UI kit: configures
- Web client → User and activity: configures client
- Web client → Trivia service: configures client
- Web client → Bot sessions: configures interface
- Desktop client → Cards SDK: configures
- Desktop client → Surface UI kit: configures
- Cards server → Cards endpoints: maps
- Cards server → Live game hubs: maps
- Cards server → Rules engine: registers
- Cards server → Runtime framework: configures
- Cards server → Cards database: initializes
- Room and turn services → Rules engine: evaluates turns
- Cards server → Replay services: registers processor
- Bot sessions → Bot strategies: runs
- Trivia service → Trivia gameplay: maps controllers
- Trivia service → Trivia notifications: maps hub
- Trivia service → Runtime framework: configures
- Link shortener → Runtime framework: configures
- Link shortener → Links database: initializes
- User and activity → Runtime framework: configures
- User and activity → Platform database: initializes