collabrix/CHECKLIST.md
DGSoft 93b98cfb5c Initial commit: Team Chat System with Code Snippet Library
- Complete chat application similar to Microsoft Teams
- Code snippet library with syntax highlighting
- Real-time messaging with WebSockets
- File upload with Office integration
- Department-based permissions
- Dark/Light theme support
- Production deployment with SSL/Reverse Proxy
- Docker containerization
- PostgreSQL database with SQLModel ORM
2025-12-09 22:25:03 +01:00

5.5 KiB

Projekt-Abnahme-Checkliste

Funktionale Anforderungen - Chat

Benutzerverwaltung

  • Registrierung implementiert (/auth/register)
  • Login implementiert (/auth/login)
  • Logout (Client-seitig, Token löschen)
  • Passwort-Hashing mit bcrypt
  • Benutzerprofil (username, email, full_name)
  • Zuordnung zu einer oder mehreren Abteilungen

Abteilungen & Kanäle

  • Department-Modell implementiert
  • Channel-Modell implementiert
  • Channel gehört zu genau einer Abteilung
  • Nur Department-Mitglieder sehen Kanäle

Chat-Nachrichten

  • Message-Modell mit allen Feldern
  • REST-Endpunkte:
    • Liste der Channels (GET /channels/)
    • Laden von Nachrichten (GET /messages/channel/{id})
    • Erstellen einer Nachricht (POST /messages/)
    • Pagination (limit/offset)
  • WebSocket-Endpoint pro Channel
  • Live-Updates an alle Clients

Datei-Uploads

  • Dateien an Nachricht anhängen
  • Lokale Speicherung (konfigurierbarer Pfad)
  • File-Modell (id, message_id, filename, mime_type, size, path, uploaded_at)
  • Zugriff nur für berechtigte Nutzer
  • Größenlimit 20 MB

Funktionale Anforderungen - Code-Snippet-Bibliothek

Datenmodell

  • Snippet-Modell mit allen Feldern:
    • id
    • title
    • language
    • content
    • tags
    • owner_id
    • visibility (Enum: private, department, organization)
    • department_id (optional)
    • created_at, updated_at

Snippet-Funktionen / API

  • POST /snippets - Snippet anlegen
  • GET /snippets - Liste mit Filtern
  • GET /snippets/{id} - Detailansicht
  • PUT /snippets/{id} - Bearbeiten (nur Owner)
  • DELETE /snippets/{id} - Löschen (nur Owner)
  • Zugriffskontrolle:
    • private: nur Owner
    • department: alle Nutzer derselben Abteilung
    • organization: alle eingeloggten Nutzer

Integration Snippets ↔ Chat

  • Snippet-Referenz in Message (snippet_id)
  • UI: Snippet aus Chat einfügen
  • Snippet-Code in Nachricht anzeigen

UI für Snippets

  • Separater Bereich "Snippet-Bibliothek"
  • Liste mit Filtern:
    • Sprache
    • Tags
    • Sichtbarkeit
    • Suchfeld (Volltext)
  • Detailansicht mit Code-Highlighting
  • Monospace-Schrift für Code
  • Scrollbar bei langen Snippets
  • Dark/Light-Theme für Code-Blöcke

UI / Frontend

Layout

  • Teams-ähnliches Layout
  • Linke Sidebar: Abteilungen + Kanäle
  • Hauptbereich:
    • Channel-Header
    • Nachrichtenliste
    • Eingabefeld + Upload + Snippet-Button
  • Snippet-Bibliothek (Liste + Detail)

Light-/Dark-Theme

  • Toggle im Header
  • Theme-Persistenz (LocalStorage)
  • Alle Komponenten Theme-kompatibel:
    • Sidebar
    • Messages
    • Buttons
    • Inputs
    • Code-Blöcke
  • Tailwind CSS

Tests (Pflicht)

Testframework

  • pytest eingerichtet

Test-Cases

  • Auth:
    • Registrierung
    • Login
    • Zugriffsschutz
  • Channel-Endpoints:
    • Nur berechtigte Nutzer
  • Nachrichten-Endpoints:
    • Erstellen
    • Laden
  • Datei-Upload:
    • Upload
    • Größenlimit
  • Snippet-Endpoints:
    • Erstellen
    • Filtern
    • Rechte
    • Sichtbarkeit

Test-Infrastruktur

  • FastAPI TestClient
  • Separate Test-Datenbank (SQLite In-Memory)

Technischer Stack (Fix)

Backend

  • Python 3.11
  • FastAPI
  • PostgreSQL 17
  • SQLModel
  • JWT (Bearer Token)
  • WebSockets

Frontend

  • React (SPA)
  • TypeScript
  • Tailwind CSS
  • Light/Dark-Theme

Projektstruktur

  • Modulare Struktur:
    • app/core/ (config, security, database)
    • app/models/ (Datenmodelle)
    • app/schemas/ (Pydantic Schemas)
    • app/api/ (Router)
    • app/services/ (Business Logic)
    • tests/ (Tests)
    • frontend/ (React-App)

Lieferumfang

  • Vollständiger Backend-Code
  • DB-Setup für PostgreSQL 17
  • JWT-Auth
  • WebSockets
  • Frontend (funktionsfähig):
    • Chat-Ansicht
    • Snippet-Bibliothek
    • Light/Dark-Theme-Toggle
    • Snippet-Nutzung im Chat
  • Startanleitung:
    • Installation
    • Migrationen (automatisch via SQLModel)
    • Server-Start
    • Frontend-Start
    • Tests ausführen

Dokumentation

  • README.md (150+ Zeilen)
  • QUICKSTART.md
  • ANNAHMEN.md (200+ Zeilen)
  • OVERVIEW.md
  • PROJECT_SUMMARY.md
  • API-Docs (auto-generiert)

Deployment

  • Docker-Compose Setup
  • .env Konfiguration
  • Produktions-Checkliste
  • Demo-Daten Script
  • Setup-Script

Code-Qualität

  • Type Hints (Python)
  • TypeScript (Frontend)
  • Klare Namenskonventionen
  • Kommentare nur wo nötig
  • DRY-Prinzip
  • Separation of Concerns
  • Error-Handling

Performance & Sicherheit

Implementiert

  • Bcrypt-Hashing
  • JWT-Tokens
  • CORS-Konfiguration
  • SQL-Injection-Schutz (ORM)
  • File-Size-Limits
  • Zugriffskontrolle

Empfehlungen für Production

  • ⚠️ HTTPS/TLS
  • ⚠️ Rate-Limiting
  • ⚠️ CSRF-Protection
  • ⚠️ CSP-Headers

Statistiken

Code-Dateien:       46
Python-Dateien:     20
TypeScript/React:   18
Test-Dateien:       6
Datenmodelle:       7
API-Endpoints:      24
React-Komponenten:  15
Dokumentation:      5 Dateien, 1000+ Zeilen

PROJEKT ABGESCHLOSSEN

Status: Production-Ready (nach Security-Review)
Datum: 2025-12-06
Version: 1.0.0

Alle Anforderungen wurden erfüllt! 🎉