# Dokumentations-Regeln ## Automatische Dokumentations-Aktualisierung **WICHTIG:** Bei JEDER Code-Aenderung muss die entsprechende Dokumentation aktualisiert werden! ## Wann Dokumentation aktualisieren? ### API-Aenderungen Wenn du einen Endpoint aenderst, hinzufuegst oder entfernst: - Aktualisiere die [Backend API Dokumentation](../api/backend-api.md) - Aktualisiere Service-spezifische API-Docs ### Neue Funktionen/Klassen Wenn du neue Funktionen, Klassen oder Module erstellst: - Aktualisiere die entsprechende Service-Dokumentation - Fuege Code-Beispiele hinzu ### Architektur-Aenderungen Wenn du die Systemarchitektur aenderst: - Aktualisiere die [System-Architektur](../architecture/system-architecture.md) - Aktualisiere Datenmodell-Dokumentation bei DB-Aenderungen ### Neue Konfigurationsoptionen Wenn du neue Umgebungsvariablen oder Konfigurationen hinzufuegst: - Aktualisiere die entsprechende README - Fuege zur [Umgebungs-Setup](../getting-started/environment-setup.md) hinzu ## Dokumentations-Format ### API-Endpoints dokumentieren ```markdown ### METHOD /path/to/endpoint Kurze Beschreibung. **Request Body:** ```json { "field": "value" } ``` **Response (200):** ```json { "result": "value" } ``` **Errors:** - `400`: Beschreibung - `401`: Beschreibung ``` ### Funktionen dokumentieren ```markdown ### FunctionName (file.go:123) ```go func FunctionName(param Type) ReturnType ``` **Beschreibung:** Was macht die Funktion? **Parameter:** - `param`: Beschreibung **Rueckgabe:** Beschreibung ``` ## Checkliste nach Code-Aenderungen Vor dem Abschluss einer Aufgabe pruefen: - [ ] Wurden neue API-Endpoints hinzugefuegt? → API-Docs aktualisieren - [ ] Wurden Datenmodelle geaendert? → Architektur-Docs aktualisieren - [ ] Wurden neue Konfigurationen hinzugefuegt? → README aktualisieren - [ ] Wurden neue Abhaengigkeiten hinzugefuegt? → requirements.txt/go.mod UND Docs - [ ] Wurde die Architektur geaendert? → architecture/ aktualisieren ## Beispiel: Vollstaendige Dokumentation einer neuen Funktion Wenn du z.B. `GetUserStats()` im Go Service hinzufuegst: 1. **Code schreiben** in `internal/services/stats_service.go` 2. **API-Doc aktualisieren** in der API-Dokumentation 3. **Service-Doc aktualisieren** in der Service-README 4. **Test schreiben** (siehe [Testing](./testing.md)) ## Dokumentations-Struktur Die zentrale Dokumentation befindet sich unter `docs-src/`: ``` docs-src/ ├── index.md # Startseite ├── getting-started/ # Erste Schritte │ ├── environment-setup.md │ └── mac-mini-setup.md ├── architecture/ # Architektur-Dokumentation │ ├── system-architecture.md │ ├── auth-system.md │ └── ... ├── api/ # API-Dokumentation │ └── backend-api.md ├── services/ # Service-Dokumentation │ ├── klausur-service/ │ ├── agent-core/ │ └── ... ├── development/ # Entwickler-Guides │ ├── testing.md │ └── documentation.md └── guides/ # Weitere Anleitungen ``` ## MkDocs Konventionen Diese Dokumentation wird mit MkDocs + Material Theme generiert: - **Admonitions** fuer Hinweise: ```markdown !!! note "Hinweis" Wichtige Information hier. !!! warning "Warnung" Vorsicht bei dieser Aktion. ``` - **Code-Tabs** fuer mehrere Sprachen: ```markdown === "Python" ```python print("Hello") ``` === "Go" ```go fmt.Println("Hello") ``` ``` - **Mermaid-Diagramme** fuer Visualisierungen: ```markdown ```mermaid graph LR A --> B --> C ``` ```