4.9 KiB
4.9 KiB
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 auf 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.
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
MVP-UI und Datenmodell;Admin-UI (Kurse, Nutzer, Landing Page);Portal mit Passwort & Zertifikat– umgesetzt (siehedocs/HANDBUCH.md).- Stripe/Webhooks + echte Abos.
- Migrationstools von Tutor-Export (Inhalte, Nutzer, Zahlungen).
- 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, danndocs/HANDBUCH.mdund diesesdocs/PLAN.md.