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