Ein skalierbares Microservices-System für Restaurant-Online-Bestellungen – entwickelt als Schulprojekt
Dieses Projekt ist ein vollständiges Restaurant-Bestellsystem bestehend aus drei Hauptkomponenten:
| Komponente | Beschreibung | Technologie |
|---|---|---|
| Website | Kunden-Portal zum Bestellen | React + Vite |
| Restaurant Client | Desktop-App für Küche & Management (KDS) | Tauri + React |
| Backend | Microservices-API | Spring Boot + Spring Cloud |
Kunden können online bestellen, das Restaurant sieht Bestellungen live auf einem Küchen-Display und kann Produkte, Preise und Einstellungen selbst verwalten – ohne Entwickler-Hilfe.
┌─────────────────────┐ ┌─────────────────────┐
│ WEBSITE │ │ RESTAURANT CLIENT │
│ (Kunden-Portal) │ │ (KDS Desktop App) │
│ React/Vite │ │ Tauri + React │
└──────────┬──────────┘ └──────────┬──────────┘
│ │
└────────────┬───────────────────┘
│ REST API
▼
┌───────────────────┐
│ API GATEWAY │
│ (Spring Cloud) │
└─────────┬─────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Product │ │ Cart │ │ Order │ ...
│ Service │ │ Service │ │ Service │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
▼ ▼ ▼
MySQL Redis MySQL
- Spring Cloud Gateway – Zentraler API-Einstiegspunkt
- Netflix Eureka – Service Discovery & Registry
- Apache Kafka – Event-Driven Kommunikation
- Resilience4j – Circuit Breaker für Fehlertoleranz
restaurant-application/
├── README.md # Diese Datei
├── docker-compose.yml # Infrastruktur (DB, Kafka, etc.)
│
├── backend/ # Microservices
│ ├── eureka-server/ # Service Discovery
│ ├── api-gateway/ # Gateway
│ ├── product-service/ # Produktkatalog
│ ├── cart-service/ # Warenkorb
│ ├── order-service/ # Bestellungen
│ ├── payment-service/ # Zahlung (Mockup)
│ └── auth-service/ # Authentifizierung
│
├── website/ # React Kunden-Portal
├── client/ # Tauri KDS Desktop App
│
└── docs/ # Dokumentation
├── PROJECT_PLAN.md # Aufgaben & Meilensteine
├── DOCUMENTATION.md # Entwicklungs-Tagebuch
└── requests/ # API Request-Beispiele
- Docker & Docker Compose
- Java 21+
- Node.js 18+
- Rust (für Tauri Client)
# 1. Repository klonen
git clone https://github.com/isaaclins/restaurant-application.git
cd restaurant-application
# 2. Infrastruktur starten
docker-compose up -d
# 3. Backend Services starten
./start-services.sh
# 4. Website starten
cd website && npm install && npm run dev
# 5. Restaurant Client starten
cd client && npm install && npm run tauri dev| Dokument | Inhalt |
|---|---|
| PROJECT_PLAN.md | Detaillierter Projektplan, Must-Haves, Zeitplan |
| DOCUMENTATION.md | Entwicklungs-Tagebuch, Entscheidungen, Learnings |
| docs/requests/ | API Endpoint-Dokumentation mit Beispielen |
| ARCHITECTURE.md | Technische Architektur-Details |
| Nr. | Anforderung | Status |
|---|---|---|
| 1 | Eigene Datenbank pro Service | ⬜ |
| 2 | Docker für Container | ⬜ |
| 3 | REST APIs (Spring Controllers) | ⬜ |
| 4 | Sicherheit bei sensiblen Daten | ⬜ |
| 5 | Circuit Breaker (Resilience4j) | ⬜ |
| 6 | Dokumentierte Services | ⬜ |
| 7 | Architektur-Diagramm | ⬜ |
| 8 | Clean Code | ⬜ |
| 9 | Swagger/OpenAPI Dokumentation | ⬜ |
- Isaac Lins
Schulprojekt – Dezember 2025
Letzte Aktualisierung: 04.12.2025