# TimeClock - Schnellstart-Anleitung

## 🚀 In 5 Minuten zur laufenden Anwendung

### Schritt 1: MySQL Setup (Einmalig)

```bash
cd /home/torsten/Programs/TimeClock/backend
./setup-mysql.sh
```

**Das Script fragt:**
- MySQL Root-Passwort
- Gewünschter DB-Benutzer (Standard: `timeclock_user`)
- Gewünschtes Passwort (Standard: `timeclock_dev_2025`)

**Das Script erstellt:**
- ✅ Datenbank `stechuhr2`
- ✅ MySQL-Benutzer mit Berechtigungen
- ✅ `.env` Datei mit Credentials

---

### Schritt 2: Server starten

```bash
cd /home/torsten/Programs/TimeClock
npm run dev
```

**Erwartete Ausgabe:**
```
[0] ✅ Sequelize: MySQL-Datenbankverbindung hergestellt
[0] ✅ Sequelize: Models initialisiert
[0] 🕐 TimeClock Server läuft auf Port 3010
[1] ➜  Local:   http://localhost:5010/
```

---

### Schritt 3: Ersten Account erstellen

1. Browser öffnen: **http://localhost:5010**
2. Klick auf **"Registrieren"**
3. Formular ausfüllen:
   - Name: `Ihr Name`
   - E-Mail: `ihre@email.de`
   - Passwort: `minimum6zeichen`
4. **"Registrieren"** klicken
5. Zum **Login** weitergeleitet
6. Mit den Credentials einloggen

---

### Schritt 4: Timer starten

1. Im Dashboard:
   - Projekt: `Mein erstes Projekt`
   - Beschreibung: `Testing TimeClock`
2. **"Starten"** klicken
3. Timer läuft! ⏱️
4. **"Stoppen"** wenn fertig

---

## 🔧 Manuelle MySQL-Einrichtung

Falls Sie das Script nicht verwenden möchten:

### 1. MySQL einloggen
```bash
mysql -u root -p
```

### 2. Datenbank und Benutzer erstellen
```sql
CREATE DATABASE stechuhr2 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'timeclock_user'@'localhost' IDENTIFIED BY 'IhrPasswort';
GRANT ALL PRIVILEGES ON stechuhr2.* TO 'timeclock_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```

### 3. .env Datei bearbeiten
```bash
cd /home/torsten/Programs/TimeClock/backend
nano .env
```

Setzen Sie:
```env
DB_USER=timeclock_user
DB_PASSWORD=IhrPasswort
DB_NAME=stechuhr2
```

---

## 🆘 Troubleshooting

### "Access denied for user"
```bash
# Berechtigungen prüfen
mysql -u root -p
SHOW GRANTS FOR 'timeclock_user'@'localhost';
```

### "Can't connect to MySQL server"
```bash
# MySQL starten
sudo systemctl start mysql
sudo systemctl status mysql
```

### "Unknown database stechuhr2"
```bash
# Datenbank erstellen
mysql -u root -p
CREATE DATABASE stechuhr2;
```

### Port bereits belegt
```bash
# Ports prüfen
sudo ss -tlnp | grep -E "3010|5010"

# Prozesse beenden falls nötig
pkill -f "TimeClock"
```

---

## 📊 Features testen

### ✅ Registrierung & Login
- `/register` - Neuen Account erstellen
- `/login` - Einloggen
- Session bleibt nach Reload erhalten

### ✅ Timer-Funktionen
- Dashboard: Timer starten/stoppen
- Einträge: Alle Zeiteinträge anzeigen
- Statistiken: Auswertungen nach Projekt

### ✅ Passwort-Reset
- `/password-forgot` - E-Mail eingeben
- In DEV-Mode wird Reset-Token angezeigt
- `/password-reset?token=XXX` - Neues Passwort setzen

---

## 🎯 Nächste Schritte

1. **Mehrere Projekte** anlegen
2. **Statistiken** ansehen
3. **Passwort ändern** im Profil
4. **Weitere Benutzer** registrieren

---

## 📖 Weitere Dokumentation

- `README.md` - Vollständige Projektdokumentation
- `SETUP.md` - Detaillierte Setup-Anleitung
- `AUTH.md` - Authentifizierung & Session-Management
- `backend/MYSQL_SETUP.md` - MySQL-Detailanleitung
- `backend/DATABASE.md` - Datenbank-Schema
- `backend/ARCHITECTURE.md` - Backend-Architektur

---

## 🎉 Fertig!

Ihre TimeClock v3 Anwendung läuft jetzt auf:
- **Frontend:** http://localhost:5010
- **Backend API:** http://localhost:3010/api

Viel Erfolg mit der Zeiterfassung! 🕐



