48 lines
2.7 KiB
Markdown
48 lines
2.7 KiB
Markdown
# 🎯 GRAND TASK: Gastro Table Reservation SaaS (caspos Ecosystem)
|
|
|
|
## 1. Projektübersicht & Vision
|
|
Entwicklung einer modernen, mandantenfähigen **Tischreservierungs-SaaS-Plattform für die Gastronomie**.
|
|
- **Zielgruppe:** Gastronomiebetriebe (Einzelrestaurants bis Ketten).
|
|
- **Fokus Phase 1:** Perfekte **UI/UX**, Dual-Auth-System (Admin vs. Kellner-PIN), grafischer 2D-Tischplan, Timeline und Schnellbuchung.
|
|
- **Fokus Phase 2 (Später):** Kassenanbindung / POS-Integration an *caspos* via REST/Webhooks.
|
|
|
|
---
|
|
|
|
## 2. Tech-Stack & Architektur
|
|
- **Infrastruktur & Container:** Docker Compose (`docker-compose.yml`) für lokales Setup und Cloud-Parität.
|
|
- **Datenbank:** PostgreSQL 16 (Open Source, ACID, RLS, Flyway Migrationen).
|
|
- **Architekturmodell:** **Hybrid Multi-Tenancy (Shared App + Database/Schema-per-Tenant)**.
|
|
- Master-Schema: Mandanten, Lizenzen, Slugs, API-Keys.
|
|
- Tenant-Schema: Tische, Bereiche, Reservierungen, Gäste, Staff.
|
|
- **Backend:** Java 21 / Spring Boot 3.x (Spring Data JPA, Spring Security, Flyway, STOMP WebSockets).
|
|
- **Frontend:** TypeScript, React (Next.js / Vite), Tailwind CSS, Zustand, Konva.js (2D-Canvas), Lucide Icons.
|
|
|
|
---
|
|
|
|
## 3. Kern-Domänenmodell (Tenant-Level)
|
|
1. **DiningArea:** Gastrobereiche (z. B. "Innenbereich", "Terrasse").
|
|
2. **RestaurantTable:** Tische mit 2D-Koordinaten (`x`, `y`, `width`, `height`, `shape`), Min/Max-Kapazität und Kombinierbarkeit.
|
|
3. **Guest:** Gästedatei mit Kontaktdaten, Präferenzen/Notizen und No-Show-Counter.
|
|
4. **Reservation:** Reservierungsstatus (`PENDING`, `CONFIRMED`, `ARRIVED`, `FINISHED`, `NO_SHOW`, `CANCELLED`), Timeslots, Gästeanzahl.
|
|
5. **StaffUser:** Kellner/Manager mit Rollen und schneller PIN-Authentifizierung.
|
|
|
|
---
|
|
|
|
## 4. UI/UX Anforderungen (Gastro-Optimiert)
|
|
1. **Dual-Mode Auth:**
|
|
- Inhaber/Manager: Langlebiger Login via E-Mail/Passwort (Portal).
|
|
- Kellner/Terminal: 4-6 stelliger PIN-Schnellzugriff (am iPad/Terminal).
|
|
- Gäste: Kein Account-Zwang für Online-Reservierungen.
|
|
2. **2D-Tischplan:** Farbcodierte Tische (Frei = Grün, Bald reserviert = Gelb, Belegt = Rot, Rechnung offen = Blau), Touch-Interaktionen.
|
|
3. **Timeline / Gantt:** Zeitstrahl nach Tischen im 15-Minuten-Raster.
|
|
4. **Quick-Booking / Walk-In:** Buchungserfassung für Kellner in unter 5 Sekunden.
|
|
|
|
---
|
|
|
|
## 5. Phasenplan (Roadmap)
|
|
- [x] **Milestone 1:** Docker Compose & PostgreSQL 16 Setup mit Flyway & Sicherheitskonfiguration.
|
|
- [ ] **Milestone 2:** Spring Boot 3 Multi-Tenant Backend (TenantContext, Hibernate Resolver, Auth-Modul mit PIN-Login).
|
|
- [ ] **Milestone 3:** TypeScript Frontend-Basis (Typen, API-Client, Zustand-Stores).
|
|
- [ ] **Milestone 4:** UI-Komponenten (2D Tischplan via Konva.js, Timeline, Quick-Booking-Modal).
|
|
- [ ] **Milestone 5:** caspos POS REST-API & Webhook-Integration.
|