Work in Progress
Kurzüberblick (Scanner-Zusammenfassung)
- Online-Reservierungsplattform für Kund:innen und Unternehmen
- Serviceorientierte Architektur mit Auth Service, zentraler API und modularer Struktur
- Role Based Access Control (RBAC) und Tenant Checks
- Containerbasierte Entwicklung mit Docker & ddev
- Zielplattform: Kubernetes mit Namespaces pro Mandant
- Inkrementelle Releases mit klar definiertem MVP
Dieses Projekt ist Teil meines Developer-Portfolios und markiert meine bewusste Weiterentwicklung von klassischem Web Application Development hin zu serviceorientierter Architektur, klaren Schnittstellen und modernen Deployment-Prozessen.
Ich entwickle eine Online-Reservierungsplattform für zwei unterschiedliche Nutzergruppen:
- Kund:innen, die Termine buchen möchten
- Unternehmen wie Friseur-, Massage- oder Nagelstudios, die Leistungen, Personal und Buchungen verwalten
Der Fokus liegt dabei nicht nur auf Funktionalität, sondern auf Architekturentscheidungen, klarer Struktur, Qualitätssicherung und realistischen Entwicklungs- und Release-Zyklen.
Der Quellcode zu diesem Projekt ist weiter unten verlinkt.
Projektstatus & Vorgehensweise
Dieses Projekt befindet sich aktuell in einem aktiven Aufbau und wird inkrementell entwickelt.
- Der geplante Funktionsumfang wird nicht auf einmal, sondern über mehrere Releases umgesetzt
- Architektur und Features können sich im Laufe der Entwicklung bewusst weiterentwickeln
- Änderungen an der geplanten Architektur oder am Feature-Set sind Teil des Prozesses und ausdrücklich vorgesehen
Ziel ist es, reale Projektpraxis abzubilden:
lieber klare, stabile Zwischenschritte als ein überladener Erstentwurf.
Architektur – aktueller Stand
Das System ist modular aufgebaut und besteht aus folgenden Komponenten:
Auth Service
Eigenständiger Backend-Service für Anmeldung, Authentifizierung und Rollenmodell (JWT-basiert).
Zentrales Backend (FastAPI)
Gemeinsame API für Business- und Customer-Funktionalitäten, intern klar modularisiert
(z. B. Business-, Customer- und Booking-Module inkl. Role Based Access Control (RBAC) und Tenant Checks).
Frontend (schrittweise umgesetzt)
Das Frontend wird im ersten Release bewusst sehr einfach mit HTML umgesetzt, um API-Flows und Geschäftslogik früh testen zu können.
In einem späteren Release wird das Frontend auf React umgestellt und strukturell weiterentwickelt.
Datenbank (MariaDB)
Persistente Speicherung der Anwendungsdaten, containerisiert für lokale Entwicklung.
Die Architektur ist so gewählt, dass frühe Releases möglich sind, gleichzeitig aber eine spätere Weiterentwicklung (z. B. UI-Framework, feinere Service-Trennung) konzeptionell vorbereitet ist.
Entwicklungs- & Zielumgebung
Die Entwicklung erfolgt aktuell containerbasiert mit Docker, orchestriert über ddev als lokale Entwicklungsumgebung.
Dadurch kann ich:
- mehrere Services konsistent lokal betreiben
- reproduzierbare Entwicklungsumgebungen nutzen
- realistische Container-Setups früh testen
Die Anwendung ist von Beginn an so konzipiert, dass sie in einem späteren Schritt auf einen Kubernetes-Cluster deployt werden kann.
Docker-Images, Konfigurationen und Schnittstellen werden entsprechend vorbereitet, ohne Kubernetes für frühe Releases zu erzwingen.
Für den späteren Betrieb auf Kubernetes ist ein mandantenfähiges Setup vorgesehen, bei dem Zugriffe sowohl auf Anwendungsebene (RBAC, Tenant Checks) als auch auf Plattformebene über Namespaces pro Mandant getrennt werden.
Geplante Releases (inkrementeller Ansatz)
Release 1 – MVP (technisch fokussiert, bewusst reduziert)
Der erste Release konzentriert sich auf einen klaren, einfachen Kern, um stabile End-to-End-Flows aufzubauen.
Auth
- Rudimentäre Anmeldung mit Benutzername / Passwort
- Keine Kund:innen-Registrierung
- Fokus auf die technische Basis (JWT, Rollen, Zugriff)
Backend / API
- Anlegen eines Unternehmens (z. B. Friseur oder Masseur)
- Pflege eines einfachen Dienstplans
(freie und belegte Zeitfenster) - Anlegen von Kund:innen durch das Unternehmen
- Buchung eines Termins durch Kund:innen in einem freien Zeitslot
- Keine komplexen Regeln oder Detail-Logik
Frontend
- Sehr einfache HTML-Oberfläche zu Test- und Validierungszwecken
- Fokus auf Funktionalität, nicht auf UI-Design
Ziel dieses Releases ist ein stabiler, verständlicher Kern, nicht ein vollständiges Produkt.
Weitere geplante Releases (Ausblick)
In späteren Releases sind u. a. vorgesehen:
- Migration des Frontends auf React
- Kund:innen-Registrierung
- Login mit OAuth (externe Identity Provider)
- Erweiterung des Buchungs- und Rollenmodells
- Verfeinerung von Validierungen und Business-Regeln
- Ausbau von CI/CD, Tests und Qualitätssicherung
- Deployment der Anwendung auf einen Kubernetes-Cluster
Der Funktionsumfang wächst dabei bewusst schrittweise mit der Architektur.
Pipeline & Qualitätssicherung
Ein zentraler Bestandteil dieses Projekts ist der Aufbau einer realistischen Entwicklungs- und Deployment-Pipeline:
- Docker-basierte Containerisierung aller Komponenten
- GitHub Actions für:
- Linting (Backend & Frontend)
- automatisierte Tests
- Build der Container Images
- klare Trennung von Code-Qualität, Tests und Build-Schritten
Die Pipeline ist so aufgebaut, dass sie sowohl lokale Entwicklung als auch spätere Kubernetes-Deployments unterstützt.
Zielbild (Endversion)
In der finalen Ausbaustufe soll die Anwendung:
- zwei klar getrennte Nutzererlebnisse für Unternehmen und Kund:innen bieten
- eine saubere, erweiterbare Backend-Architektur besitzen
- moderne Authentifizierungs- und Autorisierungsmechanismen nutzen
- containerisiert und orchestriert auf einem Kubernetes-Cluster laufen
- reale Entwicklungs-, Release- und Qualitätsprozesse abbilden
Das Projekt dient mir dabei als praktischer Rahmen, um Architektur-, Backend- und DevOps-nahe Entscheidungen bewusst zu treffen und weiterzuentwickeln.
🔗 Projekt & Repositories
Projekt-Overview:
https://github.com/RubinaWeinzettl/online-reservation-overview
Auth:
https://github.com/RubinaWeinzettl/online-reservation-auth
API:
https://github.com/RubinaWeinzettl/online-reservation-api
Web:
https://github.com/RubinaWeinzettl/online-reservation-web
