# Stargirlnails Kiel - Nail Salon Booking System Ein vollständiges Buchungssystem für Nagelstudios mit Admin-Panel, Kalender und E-Mail-Benachrichtigungen. ## Dependencies - [TypeScript](https://www.typescriptlang.org/) - [React](https://react.dev/) - [Vite](https://vite.dev/) - [Tailwind CSS V4](https://tailwindcss.com/) - [oRPC](https://orpc.unnoq.com/) - [Hono](https://hono.dev/) - [Zod](https://zod.dev/) ## Setup ### 1. Umgebungsvariablen konfigurieren Kopiere die `.env.example` Datei zu `.env` und konfiguriere deine Umgebungsvariablen: ```bash cp .env.example .env ``` ### 2. Admin-Passwort Hash generieren Das Admin-Passwort wird als Base64-Hash in der `.env` Datei gespeichert. Hier sind verschiedene Methoden, um einen Hash zu generieren: #### PowerShell (Windows) ```powershell # Einfache Methode mit Base64-Encoding $password = "dein_sicheres_passwort" $bytes = [System.Text.Encoding]::UTF8.GetBytes($password) $hash = [System.Convert]::ToBase64String($bytes) Write-Host "Password Hash: $hash" # Alternative mit PowerShell 7+ (kürzer) $password = "dein_sicheres_passwort" [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($password)) ``` #### Node.js (falls verfügbar) ```javascript // In der Node.js Konsole oder als separates Script const password = "dein_sicheres_passwort"; const hash = Buffer.from(password).toString('base64'); console.log("Password Hash:", hash); ``` #### Online-Tools (nur für Entwicklung) - Verwende einen Base64-Encoder wie [base64encode.org](https://www.base64encode.org/) ### 3. .env Datei konfigurieren Bearbeite deine `.env` Datei und setze die generierten Werte: ```env # Admin Account Configuration ADMIN_USERNAME=owner ADMIN_PASSWORD_HASH=ZGVpbl9zaWNoZXJlc19wYXNzd29ydA== # Dein generierter Hash # Email Configuration RESEND_API_KEY=your_resend_api_key_here EMAIL_FROM=noreply@yourdomain.com ADMIN_EMAIL=admin@yourdomain.com ``` ### 4. Anwendung starten ```bash # Dependencies installieren pnpm install # Entwicklungsserver starten pnpm dev ``` ## Features - 📅 **Terminbuchung**: Kunden können online Termine buchen - 💅 **Behandlungsverwaltung**: Admin kann Behandlungen hinzufügen/bearbeiten - 📆 **Kalender-Ansicht**: Übersichtliche Darstellung aller Termine - ⏰ **Verfügbarkeits-Slots**: Flexible Slot-Verwaltung mit behandlungsspezifischen Dauern - 📧 **E-Mail-Benachrichtigungen**: Automatische Benachrichtigungen bei Buchungen - 🔐 **Admin-Panel**: Geschützter Bereich für Inhaber ## Admin-Zugang Nach dem Setup kannst du dich mit den in der `.env` konfigurierten Admin-Credentials anmelden: - **Benutzername**: Wert aus `ADMIN_USERNAME` - **Passwort**: Das ursprüngliche Passwort (nicht der Hash) ## Sicherheit ⚠️ **Wichtige Hinweise:** - Ändere das Standard-Passwort vor dem Produktionseinsatz - Die aktuelle Passwort-Hashing-Methode (Base64) ist nur für Entwicklung geeignet - Für Produktion sollte bcrypt oder ein ähnliches sicheres Hashing-Verfahren verwendet werden - Speichere niemals echte Passwörter in der `.env` Datei, nur die Hashes