# SaveTheMoment Atlas Modernes Buchungs- und Tourenmanagement-System für Save the Moment Fotoboxen. ## Features (Phase 1 - Fundament) ✅ Benutzer-Authentifizierung mit Rollen (Admin/Fahrer) ✅ Admin-Dashboard mit Übersicht ✅ Fahrer-Dashboard ✅ Standort-Verwaltung (5 Standorte) ✅ Fotobox-Modell-Verwaltung ✅ Preiskonfiguration pro Standort ✅ Moderne, responsive UI mit Tailwind CSS ✅ PostgreSQL Datenbank mit Prisma ORM ## Technologie-Stack - **Frontend:** Next.js 14 (App Router), React, TypeScript, Tailwind CSS - **Backend:** Next.js API Routes, NextAuth.js - **Datenbank:** PostgreSQL mit Prisma ORM - **Authentifizierung:** NextAuth.js mit Credentials Provider - **UI:** Tailwind CSS, React Icons ## Voraussetzungen - Node.js 18+ - PostgreSQL 14+ - npm oder yarn ## Installation 1. **Repository klonen:** ```bash git clone cd SaveTheMomentAtlas ``` 2. **Dependencies installieren:** ```bash npm install ``` 3. **Umgebungsvariablen einrichten:** ```bash cp .env.example .env ``` Dann `.env` bearbeiten und folgende Werte anpassen: ```env DATABASE_URL="postgresql://user:password@localhost:5432/savethemoment?schema=public" NEXTAUTH_SECRET="dein-zufälliger-geheimer-schlüssel" NEXTAUTH_URL="http://localhost:3000" ``` 4. **Datenbank einrichten:** ```bash # Prisma Client generieren npx prisma generate # Datenbank-Schema pushen npx prisma db push # Testdaten einfügen npx tsx prisma/seed.ts ``` 5. **Entwicklungsserver starten:** ```bash npm run dev ``` Öffne [http://localhost:3000](http://localhost:3000) im Browser. ## Test-Accounts Nach dem Seeding sind folgende Test-Accounts verfügbar: **Admin:** - E-Mail: `admin@savethemoment.de` - Passwort: `admin123` **Fahrer 1:** - E-Mail: `fahrer1@savethemoment.de` - Passwort: `driver123` **Fahrer 2:** - E-Mail: `fahrer2@savethemoment.de` - Passwort: `driver123` ## Projektstruktur ``` SaveTheMomentAtlas/ ├── app/ # Next.js App Router │ ├── api/ # API Routes │ ├── dashboard/ # Admin Dashboard │ ├── driver/ # Fahrer Dashboard │ ├── login/ # Admin Login │ ├── driver-login/ # Fahrer Login │ └── page.tsx # Startseite ├── components/ # React Komponenten ├── lib/ # Utility-Funktionen │ ├── prisma.ts # Prisma Client │ └── auth.ts # NextAuth Konfiguration ├── prisma/ # Datenbank │ ├── schema.prisma # Datenbank-Schema │ └── seed.ts # Seed-Daten └── types/ # TypeScript Typen ``` ## Datenbank-Schema ### Hauptmodelle: - **User** - Benutzer (Admins & Fahrer) - **Location** - Standorte (Lübeck, Hamburg, Kiel, Potsdam, Rostock) - **PriceConfig** - Preiskonfiguration pro Standort und Modell - **Photobox** - Fotobox-Inventar - **Booking** - Buchungen - **Tour** - Touren für Fahrer - **Notification** - Benachrichtigungen ### Fotobox-Modelle: - Vintage Smile - Vintage Photos - Nostalgie - Magic Mirror ## Nützliche Commands ```bash # Entwicklungsserver npm run dev # Production Build npm run build npm start # Prisma Studio (Datenbank-GUI) npx prisma studio # Datenbank zurücksetzen npx prisma db push --force-reset npx tsx prisma/seed.ts # TypeScript Check npx tsc --noEmit ``` ## Roadmap ### Phase 2 - Buchungsmanagement - [ ] E-Mail-Parser für Ninjaforms - [ ] Kalender-Integration - [ ] Verfügbarkeitscheck - [ ] Reservierungsverwaltung ### Phase 3 - Automatisierung - [ ] Lexoffice-Integration - [ ] PDF-Generierung (Mietvertrag) - [ ] Angebotserstellung - [ ] Benachrichtigungssystem ### Phase 4 - Tourenplanung - [ ] Google Maps Integration - [ ] Routenoptimierung - [ ] Progressive Web App für Fahrer - [ ] Live-Navigation ### Phase 5 - Optimierung - [ ] Kundenportal - [ ] Erweiterte Statistiken - [ ] Native Mobile App - [ ] Performance-Optimierungen ## Standorte - **Lübeck** - fotobox-luebeck.de - **Hamburg** - hamburg-fotobox.de - **Kiel** - fotobox-kiel.de - **Potsdam** - fotobox-potsdam.de - **Rostock** - fotobox-rostock.de ## Support Bei Fragen oder Problemen wende dich an das Entwicklerteam. --- **Version:** 0.1.0 **Status:** Phase 1 - Fundament **Letzte Aktualisierung:** 2025-11-11