126 lines
4.9 KiB
Markdown
126 lines
4.9 KiB
Markdown
# Motorrad-Akademie LMS – Ersatz für Tutor LMS
|
||
|
||
Dieses Dokument ist die **Produkt- und Architekturgrundlage** für eine private, zielorientierte Lernplattform. Sie ersetzt schrittweise [Tutor LMS](https://tutorlms.com/) auf [akademie.fahrlaessig.com](https://akademie.fahrlaessig.com/).
|
||
|
||
---
|
||
|
||
## 1. Zielbild
|
||
|
||
- **Eigentümerschaft:** Code und Daten bei euch, keine Plugin-Lizenzkosten für das LMS-Kernstück.
|
||
- **Bedienung:** Reduzierte Admin-Oberfläche auf echte Workflows (Kurs anlegen, Lektionen, Zugang, Zahlung).
|
||
- **Kontinuität:** URLs, Kurslogik und Look sollen zur bestehenden Akademie passen (Migration/Redirects später).
|
||
- **Skalierung:** Produktionsfähige Basis (API, DB, Jobs), ohne WordPress als Laufzeit für den Lernbereich.
|
||
|
||
---
|
||
|
||
## 2. Ist-Analyse Akademie (öffentlich)
|
||
|
||
| Bereich | Anforderung |
|
||
|--------|-------------|
|
||
| Kurse | Karten mit Titel, Autor, Kategorien (kostenlos, Module, Übung der Woche). |
|
||
| Kurrikulum | `/kurse/.../lektionen/...` – Module/Themen und Lektionen. |
|
||
| Zugang | Einschreiben vs. „Mit dem Lernen beginnen“. |
|
||
| Monetarisierung | Abo-Preise, Warenkorb/Demo, kostenpflichtig vs. kostenlos. |
|
||
| Vertrauen | Bewertungen, Dozentenprofile. |
|
||
| Marketing | Startseite, Roadmap, Blog/Shop teils außerhalb LMS. |
|
||
|
||
---
|
||
|
||
## 3. Tutor-LMS-Feature-Parität (phasenweise)
|
||
|
||
### Phase A – MVP (Betrieb Akademie)
|
||
|
||
- Nutzer: Registrierung, Login, Passwort, Rollen (Lernender, Admin).
|
||
- Kurse: Slug, Titel, Beschreibung, Thumbnail, Kategorien, veröffentlicht.
|
||
- Kurrikulum: Kurs → Modul → Lektion (Reihenfolge), Rich-Text-Inhalt.
|
||
- Einschreibung + Fortschritt (Lektion abgeschlossen).
|
||
- Zahlungen: vorbereitet (Stripe o. Ä.); **Dev:** kostenlose Einschreibung + Preisfelder in DB.
|
||
- Öffentliche Kursliste + Kurssicht + Lektionsplayer-Layout.
|
||
|
||
### Phase B – später
|
||
|
||
- Quizze, Aufgaben, Zertifikate, Prerequisites, Content Drip, Gradebook, erweiterte Analytics, Bundles, Live-Sessions, KI-Inhalte – nur bei konkretem Bedarf.
|
||
|
||
---
|
||
|
||
## 4. Technische Architektur (Umsetzung in diesem Repo)
|
||
|
||
| Komponente | Wahl |
|
||
|------------|------|
|
||
| App | Next.js (App Router), TypeScript |
|
||
| Datenbank | PostgreSQL 16 |
|
||
| ORM | Prisma |
|
||
| Auth | NextAuth.js (Credentials, erweiterbar auf OAuth) |
|
||
| Deployment lokal | Docker Compose (`web` + `db`) |
|
||
|
||
Verzeichnisüberblick:
|
||
|
||
- `app/` – Routen: Marketing (`/`), Kurse, Lektionen, Login, **Mitgliederbereich `/portal`**, **Admin `/admin`**, öffentliche Zertifikatsseite `/zertifikat/[code]`, API (`/api/...`).
|
||
- `components/` – UI-Bausteine (Header, Kurskarten, Formulare).
|
||
- `lib/` – Prisma-Client, Auth, Landing-Content, Zertifikate, Fortschritt, Slugs.
|
||
- `prisma/schema.prisma` – Datenmodell inkl. `LandingPage`, `Certificate`.
|
||
- `prisma/seed.ts` – Demo-Daten + Standard-Landing.
|
||
- `docker-compose.yml` – Postgres (Hostport **5433**) + Web.
|
||
- `Dockerfile` + `scripts/docker-entrypoint.sh` – Migration, Seed, `next dev`.
|
||
- `README.md` – Einstieg & Schnellstart.
|
||
- `docs/HANDBUCH.md` – **implementierter Stand** (Admin, Portal, Zertifikate, Docker).
|
||
|
||
---
|
||
|
||
## 5. Migration (später, produktiv)
|
||
|
||
- Export aus WordPress/Tutor → Import-Skripte ins Zielschema.
|
||
- Nutzer: Einladung/Passwort-Reset statt unsicherer Passwort-Übernahme.
|
||
- SEO: 301 von alten `/kurse/`-URLs.
|
||
- Zahlungen: Abgleich mit Payment-Provider (Kunden-IDs).
|
||
|
||
---
|
||
|
||
## 6. Sicherheit (Produktion)
|
||
|
||
- TLS, Security-Header (CSP iterativ), Rate-Limits auf Login.
|
||
- OWASP-Basics, keine Secrets im Image, regelmäßige Updates.
|
||
- RBAC für Admin/Dozent/Support.
|
||
|
||
---
|
||
|
||
## 7. Monitoring (sekundär, aber vorgesehen)
|
||
|
||
- Strukturierte Logs, Metriken (Latenz, 5xx, Jobs), Alerts bei Zahlungs-Webhooks.
|
||
- Healthchecks für App, DB, Queue.
|
||
|
||
---
|
||
|
||
## 8. Ausführung – Entwicklung mit Docker Compose
|
||
|
||
Voraussetzung: Docker und Docker Compose installiert.
|
||
|
||
```bash
|
||
cd /home/lo/Dokumente/real-akademie-replacement
|
||
docker compose up --build
|
||
```
|
||
|
||
- App: **http://localhost:3000**
|
||
- Demo-Login (Seed): `admin@akademie.local` / `devpassword`
|
||
Lernender: `lernender@akademie.local` / `devpassword`
|
||
|
||
Umgebungsvariablen siehe `.env.example`. Für reine lokale Entwicklung ohne Docker: Node 20+, `npm install`, Postgres starten, `DATABASE_URL` setzen, `npx prisma generate`, `npx prisma migrate dev`, `npm run dev`.
|
||
|
||
**Hinweis Next.js:** Unter demselben dynamischen Pfadsegment (z. B. `/kurse/[slug]/…`) müssen die Parameternamen in allen verschachtelten Routen übereinstimmen (hier durchgängig `slug` für den Kurs).
|
||
|
||
---
|
||
|
||
## 9. Roadmap dieses Repos
|
||
|
||
1. ~~MVP-UI und Datenmodell~~; ~~Admin-UI (Kurse, Nutzer, Landing Page)~~; ~~Portal mit Passwort & Zertifikat~~ – umgesetzt (siehe `docs/HANDBUCH.md`).
|
||
2. Stripe/Webhooks + echte Abos.
|
||
3. Migrationstools von Tutor-Export (Inhalte, Nutzer, Zahlungen).
|
||
4. Phase-B-Features nach Priorität (Quizze, Drip, …).
|
||
|
||
---
|
||
|
||
## 10. Repository
|
||
|
||
- **Git:** `https://git.loepperts.com/loepperts/FL-Akademie.git`
|
||
- Einstieg für neue Entwickler: zuerst **`README.md`**, dann **`docs/HANDBUCH.md`** und dieses **`docs/PLAN.md`**.
|