feat: Add admin calendar and improve availability management
- Add admin calendar component with booking overview and status management - Implement treatment-specific availability slots with automatic duration - Enhance availability management with better UI and error handling - Move admin credentials to .env configuration - Add .env.example with all required environment variables - Update README.md with comprehensive setup guide including PowerShell password hash generation - Improve slot deletion with proper error handling and user feedback - Add toast notifications for better UX
This commit is contained in:
90
README.md
90
README.md
@@ -1,4 +1,6 @@
|
||||
# Quests Base Template
|
||||
# Stargirlnails Kiel - Nail Salon Booking System
|
||||
|
||||
Ein vollständiges Buchungssystem für Nagelstudios mit Admin-Panel, Kalender und E-Mail-Benachrichtigungen.
|
||||
|
||||
## Dependencies
|
||||
|
||||
@@ -9,3 +11,89 @@
|
||||
- [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
|
||||
|
Reference in New Issue
Block a user