Reviewed-on: #2
Merge branch 'feature/techdebt-cleanup' of https://git.krampitz.win/tim/SlipItIn into feature/techdebt-cleanup
SlipItIn
Ein Echtzeit-Multiplayer-Partyspiel: Jeder Spieler erhält Phrasen-Karten und versucht, sie unbemerkt in die laufende Runde zu "slippen". Wer einen fremden Slip erkennt, kann ihn anfechten — bei einer falschen Beschuldigung wandert die Phrase allerdings zum Beschuldiger.
Tech-Stack
- Client: .NET MAUI (.NET 10) mit CommunityToolkit.Mvvm und SignalR-Client
- Server: ASP.NET Core 10 Web API + SignalR, EF Core mit PostgreSQL
- Orchestrierung: .NET Aspire (
SlipItIn.AppHost) startet Server inklusive PostgreSQL-Container - Shared: Gemeinsame Modelle und DTOs in
SlipItIn.Shared
Voraussetzungen
- .NET 10 SDK
- Docker oder Podman (für den PostgreSQL-Container, den Aspire bereitstellt)
- MAUI-Workload:
dotnet workload install maui - Für den Server allein genügt die Aspire-Workload-Unterstützung des SDKs
Ausführen
dotnet run --project SlipItIn.AppHost/SlipItIn.AppHost.csproj
Der AppHost startet PostgreSQL (Container), wendet EF-Migrationen automatisch an und seedet Testdaten. Die MAUI-App verbindet sich standardmäßig mit https://localhost:7274 (Android-Emulator: http://10.0.2.2:5234).
Konfiguration
| Key | Zweck |
|---|---|
Jwt:Key |
Signaturschlüssel für JWT (mindestens 32 Zeichen). Nicht committen — via User-Secrets oder Umgebungsvariable setzen. In Development ist ein Fallback-Key hinterlegt; in Production bricht der Server ohne konfigurierten Key den Start ab. |
Jwt:Issuer / Jwt:Audience |
Token-Aussteller bzw. -Empfänger (Defaults: SlipItInServer / SlipItInClient) |
ConnectionStrings:postgresdb |
Wird lokal von Aspire injiziert; muss nicht manuell gesetzt werden |
Projektstruktur
SlipItIn/— MAUI-Client (Views, ViewModels, Services, Offline-Queue)SlipItIn.Server/— Web API, SignalR-Hub, EF Core, MigrationsSlipItIn.Shared/— Datenbank-Entitäten und SignalR-DTOsSlipItIn.AppHost/— Aspire-OrchestrierungSlipItIn.ServiceDefaults/— Geteilte Aspire-Service-Defaultsopenwiki/— Generierte Dokumentation (wird automatisch aktualisiert, bitte nicht von Hand editieren)
Build
dotnet build SlipItIn.slnx
Hinweise
- Dokumentationssprache: Handgepflegte Dateien (diese README) sind Deutsch, die generierte OpenWiki-Dokumentation ist Englisch.
.gitignoreenthält noch Einträge fürslipitIn.db— ein Überbleibsel aus der ursprünglichen SQLite-Planung. Die Anwendung nutzt PostgreSQL.
Description
Languages
C#
100%