{"id":50056750,"url":"https://github.com/astrapi69/adaptive-learner","last_synced_at":"2026-06-06T20:00:52.519Z","repository":{"id":349004113,"uuid":"1193858881","full_name":"astrapi69/adaptive-learner","owner":"astrapi69","description":"Adaptive learning platform with AI-powered sessions, 6 learning methods, and a 7-step cycle. Built on PluginForge. PWA, offline-capable, multilingual.","archived":false,"fork":false,"pushed_at":"2026-05-23T18:52:43.000Z","size":14452,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T20:25:51.580Z","etag":null,"topics":["adaptive-learning","ai","anthropic","dexie","education","fastapi","gemini","indexeddb","learning-platform","multilingual","offline-first","openai","pluggy","pluginforge","pwa","python","react","typescript"],"latest_commit_sha":null,"homepage":"https://astrapi69.github.io/adaptive-learner/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astrapi69.png","metadata":{"files":{"readme":"README-de.md","changelog":"changelog/releases/v0.4.0.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"astrapi69","liberapay":"astrapi69","ko_fi":"astrapi69","custom":["https://flattr.com/@astrapi69","https://www.paypal.com/donate/?cmd=_s-xclick\u0026hosted_button_id=MJ7V43GU2H386"]}},"created_at":"2026-03-27T16:49:52.000Z","updated_at":"2026-05-23T18:52:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/astrapi69/adaptive-learner","commit_stats":null,"previous_names":["astrapi69/adaptive-learner"],"tags_count":50,"template":false,"template_full_name":"astrapi69/python-poetry-template","purl":"pkg:github/astrapi69/adaptive-learner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrapi69%2Fadaptive-learner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrapi69%2Fadaptive-learner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrapi69%2Fadaptive-learner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrapi69%2Fadaptive-learner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astrapi69","download_url":"https://codeload.github.com/astrapi69/adaptive-learner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrapi69%2Fadaptive-learner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33709269,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adaptive-learning","ai","anthropic","dexie","education","fastapi","gemini","indexeddb","learning-platform","multilingual","offline-first","openai","pluggy","pluginforge","pwa","python","react","typescript"],"created_at":"2026-05-21T14:19:44.687Z","updated_at":"2026-05-30T21:00:44.851Z","avatar_url":"https://github.com/astrapi69.png","language":"TypeScript","funding_links":["https://github.com/sponsors/astrapi69","https://liberapay.com/astrapi69","https://ko-fi.com/astrapi69","https://flattr.com/@astrapi69","https://www.paypal.com/donate/?cmd=_s-xclick\u0026hosted_button_id=MJ7V43GU2H386"],"categories":[],"sub_categories":[],"readme":"# Adaptive Learner\n\n[![Version](https://img.shields.io/badge/version-v1.46.0-blue)](https://github.com/astrapi69/adaptive-learner/releases/latest)\n[![Tests](https://img.shields.io/badge/tests-4702%20grün-brightgreen)](#tests)\n[![Lizenz: MIT](https://img.shields.io/badge/Lizenz-MIT-yellow.svg)](LICENSE)\n[![Doku](https://img.shields.io/badge/doku-online-blue)](https://astrapi69.github.io/adaptive-learner/docs/)\n\nEine vollständige adaptive Lernplattform auf Basis des\nsechsmethodigen Lernmodells (Asterios Raptis, *Von Theorie zur\nPraxis*, Medium-Serie). Wähle die Methode, die zum Lernenden\npasst — deduktiv, induktiv, fehlerbasiert, dialogisch, kontextuell\noder KI-adaptiv — durchlaufe in jeder Sitzung einen Sieben-Schritt-\nZyklus, und lass eine Dual-Prompt-KI entscheiden, wann der\nLernende bereit für den nächsten Schritt ist. Auto-Loop in einen\nneuen Zyklus, sobald das Thema integriert ist. Bring deinen\neigenen KI-Schlüssel mit (Anthropic / OpenAI / Gemini) oder\nkonfiguriere die Schlüssel in\n`~/.config/adaptive_learner/secrets.yaml` für den Desktop-Launcher.\n\n[🇬🇧 English](README.md)\n\n## Dokumentation\n\nVollständige Dokumentation (Deutsch als Standard unter `/docs/`,\nEnglisch unter `/docs/en/`):\n[**astrapi69.github.io/adaptive-learner/docs/**](https://astrapi69.github.io/adaptive-learner/docs/)\n\n- [Benutzerhandbuch](https://astrapi69.github.io/adaptive-learner/docs/user-guide/getting-started/)\n  — wie die App benutzt wird\n- [Die Lernmethode](https://astrapi69.github.io/adaptive-learner/docs/concept/philosophy/)\n  — warum adaptives Lernen funktioniert\n- [Entwicklerhandbuch](https://astrapi69.github.io/adaptive-learner/docs/developer/architecture/)\n  — Architektur, Plugins, Mitwirken\n- [API-Referenz](https://astrapi69.github.io/adaptive-learner/docs/api/overview/)\n  — alle Endpunkte und Modelle\n- [Konfiguration](docs/configuration.md) — Drei-Schichten-Config-\n  Kette (env \u003e `secrets.yaml` \u003e DB)\n\n## Was du bekommst\n\n### Lern-Kern\n\n- **Sechs Lernmethoden** mit eigenen Prompts pro\n  (Methode, Schritt) — eine 42-Zellen-Prompt-Matrix, abgestimmt\n  auf den Punkt im Zyklus und darauf, wie die gewählte Methode\n  zum Mitmachen einlädt.\n- **Sieben-Schritt-Zyklus** in jeder Sitzung — Input, Fokus,\n  Versuch, Feedback, Verfeinerung, Transfer, Integration. Der\n  Dual-Prompt-Evaluator bewertet jeden Turn und entscheidet\n  „voran\", „wiederholen\", „überspringen\" oder „zurück\".\n- **Auto-Loop** über Schritt 7 hinaus — wenn das Thema\n  integriert ist, wählt ein dritter KI-Call ein neues Unterthema\n  und startet einen frischen Zyklus (auf 5 Zyklen pro Sitzung\n  begrenzt zum Schutz vor Endlosschleifen).\n- **Methodenwechsel** — Stagnationserkennung empfiehlt eine\n  andere Methode, wenn die Bewertungen abflachen; Ein-Klick-\n  Annahme im Sitzungs-Header.\n- **Streaming-KI-Antworten** — Token-für-Token-Rendering via\n  SSE; Inline-Cursor während die KI denkt; kein\n  „Denke nach…\"-Platzhalter.\n\n### Drei KI-Anbieter\n\n- **Anthropic Claude**, **OpenAI GPT**, **Google Gemini** —\n  als separate Plugins ausgeliefert, alle über die Hooks\n  `ai_complete` / `ai_complete_async` / `ai_complete_stream`\n  geroutet.\n- **Provider-Modellauswahl** — Live-Modellabfrage über den\n  `/v1/models`-Endpunkt jedes Anbieters (1 h gecacht), mit\n  Chat-Only-Filter und einer „Empfohlen / Alle\"-Gruppierung in\n  den Einstellungen.\n- **Bring-your-own-Key** — drei Auflösungs-Schichten:\n  - Umgebungsvariablen (CI / Docker).\n  - `~/.config/adaptive_learner/secrets.yaml` (Desktop-Launcher;\n    automatisch erzeugte Vorlage mit `chmod 0600` auf POSIX).\n  - Einstellungs-UI (Fernet-verschlüsselt in SQLite).\n  - Die UI zeigt pro Anbieter die Schlüssel-Quelle\n    („Schlüssel aus: secrets.yaml\" / „Umgebungsvariable\" /\n    „Einstellungen\") und deaktiviert das Eingabefeld, wenn der\n    Schlüssel extern verwaltet wird.\n\n### Duale Speicherung\n\n- **Server-Modus** (`ApiStorage`) — FastAPI-Backend, SQLite,\n  pro Nutzer Fernet-verschlüsselte API-Schlüssel, Sync\n  zwischen Geräten.\n- **Local-First-Modus** (`DexieStorage`) — alles im Browser-\n  IndexedDB, KI-Calls gehen direkt an die Anbieter. Kein\n  Backend nötig; das öffentliche GH-Pages-Deployment nutzt\n  diesen Modus.\n- Ein `IStorageService`-Interface, 22 Namespaces; Umschaltung\n  beim Start über die Einstellungen.\n\n### Sync + Backup\n\n- **Lokales-Netz-Sync** zwischen Geräten — bidirektionaler\n  WLAN-Sync mit KI-Merge-Konfliktauflösung. QR-Code-\n  Kamerascan zum Koppeln (mit Bild-Upload-Fallback für\n  eingeschränkte Browser).\n- **Backup / Restore** — JSON-Export + Import, automatische\n  Rotation, Side-by-Side-Vergleichs-UI mit Feld-Diff.\n  API-Schlüssel werden aus Exporten entfernt.\n\n### Import + Analyse\n\n- **Chat-Verlauf-Import** aus ChatGPT (JSON), Claude (JSON-\n  Bulk-Export), Claude (Single-Conversation-Markdown-Export),\n  Gemini und beliebigem Markdown.\n- **KI-gesteuerte Analyse** extrahiert Thema, Schwächen,\n  Fehlermuster, empfohlene Methode, Vokabular (für\n  Sprachgespräche) und einen Lehrplan-Vorschlag.\n- Ein Klick, um daraus ein **Curriculum zu erzeugen** und\n  eine **gezielte Sitzung** zu starten.\n\n### Exporte\n\n- **Anki .apkg-Export** — KI-extrahierte Karteikarten\n  (Basic + Cloze), auf der `/anki`-Seite geprüft und\n  client-seitig via sql.js + JSZip verpackt.\n- **NotebookLM-ZIP** — Zusammenfassung + Vokabular + Regeln +\n  Fehler + Karteikarten + Sitzungen, formatiert für den\n  NotebookLM-Source-Upload.\n- **Markdown- + PDF-Fortschrittsberichte** — Progress,\n  Sitzungsdetail, Curriculum-Übersicht. Identische\n  Wire-Shape in beiden Speichermodi.\n\n### Gamification\n\n- **XP + Level** mit Exponentialkurve, Streak-Multiplikatoren\n  pro abgeschlossener Sitzung, First-Method-Boni.\n- **28 abgestufte Abzeichen** in 5 Kategorien (Einstieg, Konsistenz,\n  Methoden-Entdecker, Tiefe, Polyglott), beim ersten Start\n  aus YAML geseedet.\n- **Streak-Heatmap** (GitHub-Stil, letzte 365 Tage) mit\n  Wochenend-Modus-Toggle + Freeze-Vorrat (1 Freeze pro 7\n  Streak-Tage, max. 3).\n\n### Sprache (Web Speech API)\n\n- **Text-to-Speech** auf KI-Antworten + Assessment-Ergebnissen.\n- **Speech-to-Text** auf dem Sitzungs-Input (Zwischen-\n  transkripte füllen das Textarea vor dem Absenden).\n- **Aussprache-Übung** für Sprachprojekte (Zielsatz →\n  sprechen → KI bewertet Ähnlichkeit).\n\n### Mobile / PWA\n\n- **Installierbar** auf Chrome / Edge / Safari — „Zum\n  Startbildschirm hinzufügen\"-Prompt, Standalone-Anzeige,\n  kein Browser-Tab.\n- **Offline** für vergangene Sitzungen + Dashboard +\n  Fortschritt über den Service Worker (24 h LRU auf\n  GET `/api/`); neue Sitzungen brauchen Netz für den KI-Call.\n- **Swipe-Gesten** — Assessment-Links/Rechts-Navigation,\n  Curriculum-Topic-Swipe-to-Reveal, Sitzungs-Zyklus-Peek;\n  Reduced-Motion wird respektiert.\n- **Mobil getestet** auf iPhone-SE-, iPhone-14-, Pixel-7- und\n  iPad-Viewports.\n\n### Rich-Text + i18n\n\n- **TipTap-Rich-Text** in Sitzungsnotizen + Curriculum-\n  Beschreibungen + Lektionen (Fett/Kursiv, Überschriften,\n  Listen, Blockquotes, Code-Blöcke mit Lowlight-Syntax-\n  Highlighting, Links, Zeichenzähler).\n- **8 Sprachen voll übersetzt**: DE, EN, ES, FR, EL, PT,\n  TR, JA — Single-Source-YAML-Kataloge in\n  `backend/config/i18n/`, via `make sync-i18n` in das\n  Frontend-Dexie-Bundle gespiegelt.\n\n## Installation\n\nVier Wege, Adaptive Learner zu betreiben, in Reihenfolge\nzunehmenden Aufwands.\n\n### 1. Online ausprobieren (kein Install)\n\nDie öffentliche PWA läuft im **Local-Modus** — alle Daten\nbleiben in deinem Browser (IndexedDB), KI-Calls gehen direkt\nvon der Seite an Anthropic / OpenAI / Gemini mit deinem\neigenen API-Schlüssel. Kein Backend, keine Installation.\n\n[**Live-App öffnen →**](https://astrapi69.github.io/adaptive-learner/)\n\nAuf Chrome / Edge / Safari erscheint beim ersten Besuch\nein „Zum Startbildschirm hinzufügen\"-Prompt — annehmen und\nAdaptive Learner wird zu einer eigenständigen PWA, die du\nvom Desktop oder Handy-Startbildschirm aus startest.\n\n### 2. Desktop-App (nativer Launcher)\n\nVorgebaute Single-Binary-Executables, die das Backend\nhochfahren und die App in deinem Standardbrowser öffnen.\nKein Docker, kein Terminal nötig.\n\nDownload vom\n[**neuesten GitHub-Release**](https://github.com/astrapi69/adaptive-learner/releases/latest):\n\n| OS | Asset | Ausführen |\n|---|---|---|\n| Linux | `adaptive-learner-launcher` | `chmod +x adaptive-learner-launcher \u0026\u0026 ./adaptive-learner-launcher` |\n| macOS | `adaptive-learner-launcher-macos.zip` | Entpacken, dann Doppelklick (oder `./adaptive-learner-launcher` im Terminal) |\n| Windows | `adaptive-learner-launcher.exe` | Doppelklick |\n\nJedes Release liefert auch eine `.sha256` neben jedem\nBinary zur Integritätsprüfung. Der Launcher lädt beim\nersten Start den passenden getaggten Source-Tree\nherunter, baut die Docker-Images und startet die App\nunter `http://localhost:7880`. Beim Erststart wird\naußerdem `~/.config/adaptive-learner/secrets.yaml` als\nauskommentierte Vorlage angelegt — Zeilen einkommentieren\nund mit den eigenen Provider-Keys füllen, um das\nEinstellungs-UI zu überspringen.\n\n### 3. Docker (self-hosted)\n\nVoraussetzung: Docker (Docker Desktop oder Docker Engine\nmit Compose).\n\n**Linux / macOS:**\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/astrapi69/adaptive-learner/main/install.sh | bash\n```\n\n**Windows (PowerShell):**\n\n```powershell\nirm https://raw.githubusercontent.com/astrapi69/adaptive-learner/main/install.ps1 | iex\n```\n\nBeide Skripte klonen das getaggte Release nach\n`~/adaptive-learner/`, erzeugen einen\n`ADAPTIVE_LEARNER_SECRET_KEY` (Fernet-Verschlüsselung at\nrest), bauen die Docker-Images und starten den Stack unter\n`http://localhost:7880` (ein Port; nginx serviert das\nstatische Frontend und proxyt `/api/*` an FastAPI).\n\n```bash\ncd ~/adaptive-learner\n./stop.sh   # docker compose down\n./start.sh  # docker compose up -d\n# Deinstallation: ./stop.sh \u0026\u0026 cd ~ \u0026\u0026 rm -rf adaptive-learner\n```\n\n### 4. Entwickler-Setup (Source-Build)\n\nManuelles Poetry-+-npm-Setup für Mitwirkende.\nVoraussetzungen: Python 3.11+, Node ≥24, Poetry, npm, Make.\n\n```bash\ngit clone git@github.com:astrapi69/adaptive-learner.git\ncd adaptive-learner\nmake install   # Poetry + npm + alle 10 Plugins als Path-Deps\nmake dev       # Backend :18001 + Frontend :15174 (Vite-Dev-Server)\n```\n\nVollständige Setup-Anleitung unter\n[docs/developer/setup](https://astrapi69.github.io/adaptive-learner/docs/developer/setup/).\n\n## Tech-Stack\n\n| Schicht | Technologie |\n|---|---|\n| Backend | Python 3.11+, FastAPI ^0.136, SQLAlchemy ^2.0, Pydantic v2, Alembic, aiosqlite, cryptography (Fernet), platformdirs, Poetry |\n| Frontend | React 19, TypeScript 6 (strict), Vite 8, react-router-dom 7, react-toastify, Recharts 3, TipTap 2 + 15 Erweiterungen, Dexie 4 (IndexedDB), html5-qrcode, sql.js + jszip |\n| PWA | vite-plugin-pwa, Workbox SW, Manifest + Maskable-PNG-Icons |\n| Plugins | pluginforge ^0.10.0 (PyPI), identitätsgegated über `target_application = \"adaptive_learner\"` |\n| KI-Anbieter | Anthropic SDK, OpenAI SDK, google.genai 2.x |\n| Launcher | PyInstaller, cross-OS (Linux + macOS + Windows) |\n| Testing | pytest ^9, Vitest 4 (happy-dom), Playwright (E2E-Smoke) |\n| Tooling | Poetry, npm, Docker, Make, ruff, pre-commit |\n\n## Ausgelieferte Plugins\n\n13 Plugins, alle unter `plugins/`. Routen werden unter\n`/api/plugins/\u003cname\u003e/*` eingebunden.\n\n| Plugin | Routen | Zweck |\n|---|---|---|\n| ai-anthropic | hook-only | `ai_complete*` für `claude-*` |\n| ai-openai | hook-only | `ai_complete*` für `gpt-*` |\n| ai-gemini | hook-only | `ai_complete*` für `gemini-*` |\n| assessment | /questions, /evaluate, /profile/{id} | 12-Frage-Profil → Sechs-Methoden-Gewichte |\n| session | /start, /{id}/message, /message/stream, /rate, /end, /switch, /pronunciation/* | 7-Schritt-Zyklen, Dual-Prompt-Eval, Streaming, Auto-Loop, Aussprache-Bewertung |\n| tracking | /progress/{id}, /commits/{id} | Pro-Projekt-Aggregate + Schritt-Evaluations-Insights |\n| tools | /recommendations/{id}, /spaced/{id} | Methoden-bezogene Tool-Liste + Spaced-Practice |\n| gamification | /xp/*, /badges/*, /streak/*, /reset | XP + 28 abgestufte Abzeichen + Streak-Heatmap |\n| anki | /cards CRUD, /extract/{session,conversation}, /mark-exported | KI-extrahierte Karteikarten + .apkg-Export |\n| notebooklm | /questions CRUD, /generate/{session,project}, /study-guide/{id} | Aktive-Recall-Fragen + Studienführer + ZIP-Export |\n| learning-repo | /render/{id}, /export-zip/{id}, /persist/{id} | Git-gestütztes Lern-Repository (Markdown-Artefakte + optionaler Commit) |\n| content-loader | /sets, /sets/{src}/{id}/download, /sets/{src}/{id}/lessons | Lädt strukturierte Lektionssets aus öffentlichen GitHub-Repos; lokal gecacht |\n| missions | /templates, /today/{user_id}, /regenerate/{user_id} | Tägliche adaptive Missionen, gegen vorhandene Daten ausgewertet |\n\n## Nützliche Make-Targets\n\n```bash\nmake dev               # Backend (18001) + Frontend (15174)\nmake test              # Backend + Plugins + Vitest (4478 Tests)\nmake test-coverage     # Opt-In-Coverage (CI nachts)\nmake sync-versions     # Version über 18 Dateien propagieren\nmake sync-i18n         # Backend-YAML → Frontend-JSON-Bundles\nmake docs-serve        # MkDocs-Preview auf :8000 mit Hot-Reload\nmake prod / prod-down  # docker-compose-Stack\n```\n\nE2E-Smoke: `cd e2e \u0026\u0026 npx playwright test --project=smoke`\n(16 Spec-Dateien bei v1.20.0).\n\n## Tests\n\n| Suite | Anzahl |\n|---|---|\n| Backend (pytest) | 786 |\n| Plugins (10 × pytest) | 615 |\n| Frontend (Vitest 4) | 1233 |\n| **Gesamt** | **2634** |\n\nPlus 16 Playwright-Smoke-Spec-Dateien, die abdecken: Landing,\nOnboarding+Assessment, Sitzung (3-Chunk-SSE), Curriculum,\nEinstellungen, Mobile-Viewports, Sync-Pairing, Backup-Roundtrip,\nMulti-Cycle-Auto-Loop, Import + Analyse, MD-Export, Subjects/\nTags-Filter, Rich-Text-Notizen, Modellauswahl.\n\n## Lokale Projekt-Referenzen\n\n- [`CLAUDE.md`](CLAUDE.md) — Entwicklungs-Leitfaden für\n  Claude Code (unter 10K, Single-Line-State-Pointer).\n- [`docs/configuration.md`](docs/configuration.md) —\n  Drei-Schichten-Config-Kette.\n- [`docs/ROADMAP.md`](docs/ROADMAP.md) — Phasenhistorie + Nächstes.\n- [`docs/backlog.md`](docs/backlog.md) — Daily-Planning-View\n  (P0–P5-Tiers + Blocked-Items).\n- [`docs/adaptive-learner-project-reference.md`](docs/adaptive-learner-project-reference.md)\n  — Originalplan + ausgelieferte Architektur.\n\nBenutzergerichtete Prosa lebt auf der\n[**Doku-Site**](https://astrapi69.github.io/adaptive-learner/docs/);\ndie In-Repo-Dateien oben sind für Mitwirkende.\n\n## Status\n\nAktive Entwicklung. **v1.20.0 wurde am 2026-05-22\nveröffentlicht** mit dateibasierter Schlüsselkonfiguration\nüber `secrets.yaml`. 34 Entwicklungsphasen ausgeliefert; per-\nRelease-Notes in [`changelog/releases/`](changelog/releases/).\n\n## Herkunft\n\nDie Plugin-Loader-Infrastruktur, geschichtete Architektur,\nTest-Disziplin und der Python+React-Stack wurden im März\n2026 aus [Bibliogon](https://github.com/astrapi69/bibliogon)\nv0.33.0 extrahiert. Die Bibliogon-Buchdomänen-Modelle und\nihre Plugins wurden entfernt; Adaptive Learner ist auf der\nDomänenebene (Lernsitzungen, Curricula, Assessment,\nKI-Integration) komplett eigenständig. Die Launcher-Form\nwurde übernommen; die Anwendung ist eine separate Codebasis.\n\n## Lizenz\n\nMIT — siehe [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrapi69%2Fadaptive-learner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastrapi69%2Fadaptive-learner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrapi69%2Fadaptive-learner/lists"}