Inside the Stack 🛠️
"Local first, speed always, privacy by default."
Architecture: MVP (Model-View-Presenter) | Python 3.12 | AsyncIO
🏗️ The Architecture: Clean Code & MVP
Das Projekt folgt strikten Clean Code Prinzipien und trennt Verantwortlichkeiten sauber:
- Models (Data): Pydantic & SQLModel definieren die Datenstruktur (`app/models.py`).
- Services (Logic): Die gesamte Business-Logik (z.B. "Wie wird ein Gast importiert?") liegt in atomaren Services (`GuestService`, `MusicService`).
- Routers (Presenter): "Dumm" und modular. Aufgeteilt in `admin/core`, `admin/system` (Super-Admin), `admin/events` (Host) und `admin/interaction` (DJ). Keine Logik im Router!
# Example: Router calls Service
@router.get("/dashboard")
async def dashboard(request, db):
guests = await GuestService.get_all(db)
return templates.TemplateResponse(..., {"guests": guests})
🔐 Roles & Permissions (RBAC)
Ein fein-granulares Berechtigungssystem regelt Zugriffe und schützt vor Fehlbedienung ("Safe Peer Model").
Super Admin
Systemweite Kontrolle. Events erstellen/löschen.
Host
Event-Besitzer. Gäste & Buffet verwalten. Kann nicht kicken.
DJ
Musik-Chef. Queue moderieren & Playback steuern.
Gast
Teilnehmer. RSVP status und Buffet-Mitbringsel.
⚡ Core Power
-
🔹
FastAPI: High-Performance Async Framework.
-
🔹
Python 3.12: Modernste Features & Performance.
-
🔹
SQLModel & AsyncPG: Asynchrone Datenbank-Operationen für maximale Nebenläufigkeit ohne Blocking.
🛡️ Quality Assurance
Wir vertrauen nicht auf Glück, sondern auf Tools.
-
🔎
Ruff: Ultra-schneller Linter (Rust-based). Sortiert Imports, fixt Whitespace und erzwingt Style-Guides.
-
🧪
Pytest: Automatisierte Unit-Tests sichern kritische Logik (z.B. Login, Isolation) ab.
-
📦
Docker: Reproduzierbare Environments. Dev = Prod.
🌍 Local-First Strategy
Keine CDN-Abhängigkeiten für kritische Assets. CSS, JS und Fonts werden lokal gehostet.
Das garantiert Funktion auch im schlechten Netz und schützt die Privatsphäre der Gäste (kein Tracking durch
Drittanbieter).
(Ausnahme: Karten-Tiles für Anfahrt, dynamsich
geladen)
🔌 Integrations & Smart Home
Jellyfin API
Direkter Zugriff auf die private Musiksammlung. Suche & Cover-Art Hosting.
Home Assistant
Steuert smarte Lautsprecher (Sonos, Google) und Lichter passend zur Party-Stimmung.
SMTP / Mail
Eigener Mail-Versand via Background Tasks. Magic Links statt Passwörter.
Auto-DJ
Server-Side Loop (Background Task) überwacht Warteschlange und füllt Stille.
Code is Poetry. Infrastructure is Art.
Generated by Antigravity v4