π§ Backend Wiki - WorkmateOS
WorkmateOS Backend-Dokumentation
Diese Dokumentation beschreibt die Backend-Architektur, Module und APIs von WorkmateOS.
π Dokumentations-Γbersichtβ
| Dokument | Status | Beschreibung |
|---|---|---|
| Authentication & SSO | β VollstΓ€ndig | Zitadel SSO, OAuth2, Role Mapping, Permissions |
| Admin Panel | β VollstΓ€ndig | System-Administration, User/Department/Role Management |
| Module Γbersicht | β VollstΓ€ndig | Alle Backend-Module (CRM, Projects, Invoices, etc.) |
| API Reference | β³ TODO | Alle REST Endpoints mit Beispielen |
| Datenbank Schema | β³ TODO | Datenbank-Modelle, Migrations, Best Practices |
ποΈ Backend-Architekturβ
Tech Stackβ
- Framework: FastAPI (Python 3.13)
- ORM: SQLAlchemy 2.0
- Database: PostgreSQL 16
- Migrations: Alembic
- Authentication: Zitadel (OAuth2/OIDC)
- API Docs: Swagger/OpenAPI
Verzeichnis-Strukturβ
backend/
βββ app/
β βββ core/ # Core-FunktionalitΓ€t
β β βββ auth/ # Authentication (Zitadel, Roles)
β β βββ audit/ # Audit Logging
β β βββ settings/ # Config, Database
β β
β βββ modules/ # Business-Module
β β βββ employees/ # Mitarbeiter-Verwaltung
β β βββ documents/ # Dokumenten-Management
β β βββ reminders/ # Erinnerungen
β β βββ dashboards/ # Dashboard-Daten
β β βββ system/ # System-Services
β β βββ backoffice/ # Backoffice-Module
β β βββ crm/ # Customer Relationship
β β βββ projects/ # Projekt-Management
β β βββ invoices/ # Rechnungswesen
β β βββ finance/ # Ausgaben
β β βββ time_tracking/ # Zeiterfassung
β β βββ chat/ # Messaging
β β
β βββ models.py # Model-Exporte (fΓΌr Alembic)
β βββ main.py # FastAPI-App
β
βββ alembic/ # Database Migrations
βββ tests/ # Unit & Integration Tests
βββ requirements.txt # Python Dependencies
π Authenticationβ
WorkmateOS nutzt Zitadel als Identity Provider mit OAuth2/OIDC.
VollstΓ€ndige Dokumentation: β AUTHENTICATION.md
Quick Start:
- SSO-Login ΓΌber Zitadel
- Role-based Access Control (RBAC)
- Wildcard Permissions (
*,backoffice.*) - Automatisches Employee Onboarding
π¦ Moduleβ
Core-Moduleβ
| Modul | Beschreibung | Dokumentation |
|---|---|---|
| Employees | Mitarbeiter, Abteilungen, Rollen | ADMIN_PANEL.md / MODULE_UEBERSICHT.md |
| Documents | Dokumenten-Upload & Management | MODULE_UEBERSICHT.md |
| Reminders | Erinnerungen & Benachrichtigungen | MODULE_UEBERSICHT.md |
| Dashboards | Dashboard-Konfiguration | MODULE_UEBERSICHT.md |
| System | Infrastruktur-Services | MODULE_UEBERSICHT.md |
Backoffice-Moduleβ
| Modul | Beschreibung | Dokumentation |
|---|---|---|
| CRM | Kunden & Kontakte | MODULE_UEBERSICHT.md |
| Projects | Projekt-Management | MODULE_UEBERSICHT.md |
| Invoices | Rechnungserstellung | Finance DE / Finance EN |
| Finance | Ausgaben-Management | Finance DE / Finance EN |
| Time Tracking | Zeiterfassung | MODULE_UEBERSICHT.md |
| Chat | Messaging-System | MODULE_UEBERSICHT.md |
π API-Strukturβ
Alle Module folgen einer konsistenten API-Struktur:
/api/{module}/
βββ GET / # List (mit Pagination & Filtern)
βββ POST / # Create
βββ GET /{id} # Read
βββ PUT /{id} # Update
βββ DELETE /{id} # Delete
βββ ... (custom endpoints)
Beispiel - CRM:
GET /api/customers # Liste aller Kunden
POST /api/customers # Neuen Kunden anlegen
GET /api/customers/{id} # Kunden abrufen
PUT /api/customers/{id} # Kunden bearbeiten
DELETE /api/customers/{id} # Kunden lΓΆschen
GET /api/customers/{id}/contacts # Kontakte eines Kunden
ποΈ Datenbankβ
Schema-Designβ
- Core-Schema: core_erm.dbml
- Backoffice-Schema: workmateos_phase2.dbml
Migrationsβ
Migrations werden mit Alembic verwaltet:
# Create migration
alembic revision --autogenerate -m "Add new table"
# Run migrations
alembic upgrade head
# Rollback
alembic downgrade -1
Dokumentation: β³ TODO - DATABASE.md
π API-Dokumentationβ
Swagger UIβ
Entwicklung: http://localhost:8000/docs Production: https://api.workmate.kit-it-koblenz.de/docs
Authentifizierung in Swaggerβ
- Klicke auf "Authorize" π
- Gib Access Token ein:
Bearer {your_token} - Klicke "Authorize"
- API-Calls werden automatisch authentifiziert
π§ͺ Testingβ
Test-Framework: Pytest
# Run all tests
pytest
# Run with coverage
pytest --cov=app tests/
# Run specific test
pytest tests/test_auth.py::test_login
Dokumentation: β³ TODO - TESTING.md
π Developmentβ
Setupβ
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Run migrations
alembic upgrade head
# Start dev server
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
Code-Struktur pro Modulβ
Jedes Modul folgt diesem Pattern:
module_name/
βββ __init__.py # Exports
βββ models.py # SQLAlchemy Models
βββ schemas.py # Pydantic Schemas (Request/Response)
βββ crud.py # Database Operations
βββ routes.py # FastAPI Endpoints
βββ README.md (optional) # Modul-Dokumentation
π Performance & Monitoringβ
Loggingβ
WorkmateOS nutzt Python's logging mit strukturiertem Logging:
import logging
logger = logging.getLogger(__name__)
logger.info("User logged in", extra={"user_id": user.id, "email": user.email})
logger.error("Database error", exc_info=True)
Metrics (TODO)β
- Prometheus fΓΌr Metriken
- Grafana fΓΌr Dashboards
- Sentry fΓΌr Error Tracking
π Sicherheitβ
Best Practicesβ
- β HTTPS only in Production
- β JWT Token Validation bei jedem Request
- β Role-based Access Control (RBAC)
- β SQL Injection Prevention durch SQLAlchemy ORM
- β CORS konfiguriert fΓΌr Frontend-Domain
- β³ Rate Limiting (TODO)
- β³ Input Validation mit Pydantic
Dokumentation: β³ TODO - SICHERHEIT.md
π BeitrΓ€ge zur Dokumentationβ
Diese Dokumentation lebt! Wenn du etwas hinzufΓΌgst:
- Halte dich an die bestehende Struktur
- FΓΌge Code-Beispiele hinzu
- Aktualisiere den Changelog am Ende
- Verlinke auf verwandte Dokumente
π Linksβ
Letzte Aktualisierung: 30. Dezember 2025 Maintainer: K.I.T Solutions Team