Kontext
Die visuelle Idee war schnell klar. Schwieriger war es, das Board unter realen Bedingungen verständlich und benutzbar zu halten: Authentifizierung, Rechte, langsame Anfragen und mobile Nutzung.
Ansatz
Das Projekt besteht aus einem Go-Backend, einem React/TypeScript-Frontend und MongoDB. Ich habe an Backend, Interaktion, Sicherheit und Deployment gearbeitet.
System
- React / TypeScript: Board und Interaktion
- Go / Chi: API und Sessions
- MongoDB: Projekte, Stories, Tasks und Bugs
- Docker: Deployment
Technische Entscheidungen
- Session-Cookies mit CSRF-Schutz und Rate Limiting absichern.
- WebSocket-Unterstützung für Aktualisierungen vorsehen.
- Ladezustände so aufteilen, dass eine langsame Teilanfrage nicht die ganze Anwendung blockiert.
Was nicht funktioniert hat
Anfangs wartete das Board auf zu viele Daten gleichzeitig. Wenn eine Teilanfrage langsam war, fühlte sich die ganze Anwendung kaputt an. Einfach schneller zu laden war nicht die eigentliche Lösung.
Ergebnis
Authentifizierung, rollenbasiertes Verhalten, CSRF-Schutz, Rate Limiting, WebSockets und Docker-basiertes Deployment sind Teil des Systems.
Was ich mitgenommen habe
Die bessere Lösung war, Abhängigkeiten zu reduzieren und Inhalte schrittweise sichtbar zu machen, sobald ihre Daten verfügbar waren.