Initial commit - SaveTheMoment Atlas Basis-Setup
This commit is contained in:
192
README.md
Normal file
192
README.md
Normal file
@@ -0,0 +1,192 @@
|
||||
# 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 <repository-url>
|
||||
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
|
||||
Reference in New Issue
Block a user