# PROJEKTSTAND — JKA-Karateclub Arbon Website

**Stand:** 2026-08-18  
**Status:** Launch-bereit ✅

---

## Tech-Stack

| Technologie | Version |
|---|---|
| Next.js | 14.2.35 |
| React | 18.3.1 |
| TypeScript | 5.9.3 |
| Tailwind CSS | 3.4.19 |
| Framer Motion | 12.42.2 |
| Nodemailer | 9.0.3 |
| bcryptjs | 2.4.3 |
| otplib (TOTP/2FA) | 12.0.1 |

---

## Seiten / Routen

| Route | Beschreibung |
|---|---|
| `/` | Startseite (Hero, About, Dojo Kun, Kinder, Trainingszeiten, Instagram) |
| `/verein` | Über das Dojo |
| `/verein/trainer-vorstand` | Trainer & Vorstand |
| `/verein/fotos` | Fotogalerie |
| `/verein/ferien-feiertage` | Ferienplan & Feiertage |
| `/karate/news` | Neuigkeiten |
| `/karate/nachruf-koichi-sugimura` | Nachruf Koichi Sugimura |
| `/karate/senioren` | Karate für Senioren |
| `/kinder-karate` | Kinder-Karate |
| `/prufungen` | Prüfungen & Gürtelgrade |
| `/karatetechniken/katas` | Katas |
| `/karatetechniken/kihon` | Kihon |
| `/karatetechniken/filme` | Lehrfilme (Video) |
| `/trainingszeiten` | Trainingszeiten |
| `/termine` | Termine & Anlässe |
| `/preise` | Mitgliedschaft / Preise |
| `/kontakt` | Kontaktformular |
| `/dojo-kun` | Dojo Kun |
| `/impressum` | Impressum |
| `/datenschutz` | Datenschutzerklärung |
| `/dojo-intern` | Geschlossener Mitgliederbereich (Token-geschützt) |
| `/admin` | Admin-Dashboard (Passwort + TOTP optional) |

---

## Admin-Bereich (`/admin`)

- Login mit Passwort (bcrypt-Hash in `data/admin-config.json`)
- Optionale 2FA via TOTP (Authenticator App)
- Invite-Token für Dojo-Intern-Zugang (in `.env.local`)
- Audit-Log in `data/audit.log`
- Verwaltbar über Admin-Panel:
  - News, Fotos, Videos, Dokumente
  - Termine & Events, Ferien/Feiertage
  - Trainingseinheiten, Prüfungen
  - Team/Vorstand, Preise, Mitglieder
  - Kontaktanfragen einsehen
  - Statistiken

---

## Datendateien (`data/`)

| Datei | Inhalt |
|---|---|
| `admin-config.json` | Passwort-Hash + TOTP-Status |
| `audit.log` | Login-Protokoll |
| `news.json` | News-Einträge |
| `photos.json` | Galerie-Fotos |
| `videos.json` | Lehrfilm-Videos |
| `team.json` | Trainer & Vorstand |
| `mitglieder.json` | Mitgliederliste (nur Dojo-intern) |

---

## Umgebungsvariablen (`.env.local`)

Vorlage: `.env.example`

```
DOJO_INVITE_TOKEN=...    # Zugangstoken für /dojo-intern
ADMIN_EMAIL=...          # E-Mail für Admin-Benachrichtigungen
```

---

## Deployment-Checkliste

- [ ] Hosting-Provider gewählt (z.B. Vercel, Netlify, eigener Node-Server)
- [ ] `.env.local` auf dem Server mit echten Werten anlegen
- [ ] `npm install` ausführen
- [ ] `npm run build` ausführen
- [ ] `npm start` (oder Vercel/Netlify Deployment)
- [ ] Domain `www.jka-karateclub-arbon.ch` auf Server zeigen
- [ ] Admin-Passwort nach erstem Login ändern
- [ ] TOTP (2FA) im Admin-Bereich aktivieren
- [ ] Kontaktformular testen (E-Mail-Versand via Nodemailer)

---

## Noch offen / Nice-to-have

- Instagram-Feed: API-Token für Live-Feed konfigurieren (aktuell Fallback-Anzeige)
- Echtes SMTP für Kontaktformular konfigurieren (Nodemailer braucht SMTP-Zugangsdaten in `.env.local`)
