A self-hosted learning platform for Nextcloud. Flashcards with spaced repetition, interactive IT simulators, AI tutor, and instructor analytics. Your data never leaves your server.
Built for IT certification bootcamps (CompTIA, Cisco, AWS) but works for any subject — from vocabulary drilling to exam preparation.
Looking for pilot partners! If you run Nextcloud at a school, university, training provider, or public institution — I'd love your feedback. Demo accounts available. Open an issue or email me.
- Smart Queue — one-click review of all due cards, sorted by memory strength (FSRS-5)
- Leitner System — classic 5-box spaced repetition with automatic scheduling
- Training Mode — quick quiz sessions with immediate feedback and confidence buttons
- Exam Simulator — timed exams with configurable presets, passing thresholds, and scaled scoring
- Story Campaigns — learn through real IT incident scenarios (WannaCry, SolarWinds, Log4Shell)
- CLI Terminal, Subnet Calculator, DNS Resolver, Firewall Builder
- Port Scanner, Routing Table, NAT Table, Wireshark Lite, Network Topology Placement
- Live Duels — real-time 1v1 quiz battles via Server-Sent Events
- Sprint & Elimination — 2-5 player gameshow modes
- Seasonal League — weekly competition with promotion/relegation
- XP, levels, streaks, 10 badges
- Course management with pool assignment and student enrollment
- At-risk detection — automatic warnings for struggling students
- Chapter heatmaps — see where the class struggles at a glance
- Curriculum timeline — plan course schedule with milestones
- Admin dashboard — CSV export, course archiving, cohort merging
- Collaborative knowledge base with student contributions and moderation
- Maintenance Mode — automated long-term review schedule after course ends
- Trouble-spot cheat sheet — export your weakest topics for targeted exam prep
Requires a Google Gemini API key. Without it, the app is fully functional — AI features are simply hidden. Each user must explicitly opt in (GDPR-compliant consent flow).
- VirtuProf — AI learning assistant with RAG-powered answers and source citations
- Question Generator — create flashcards from pasted text
- Note Generator — AI-powered topic summaries saved to Nextcloud Files
- Multiple Choice (single & multi-select)
- Free Text with fuzzy matching
- Performance-Based Questions (PBQ) — interactive CLI, drag-and-drop, wiring tasks
- CSV/JSON import & export, pool sharing, multi-language translations
- Go to Apps in your Nextcloud admin panel
- Search for "Learning"
- Click Download and enable
cd /path/to/nextcloud/custom_apps/
git clone https://github.com/andremadstop/learning-nc.git learning
cd learning/app
npm install
npm run build
php /path/to/nextcloud/occ app:enable learningNo data leaves your server unless AI features are explicitly enabled by an admin AND the user has given consent.
| Data sent to Gemini API | Details |
|---|---|
| Question text | Up to 500 characters, stripped of HTML |
| Pool sample questions | Up to 15 questions (text only, truncated) |
| Course name | Name only — no enrollment data |
| Leitner box counts | Numeric distribution only |
Never sent: usernames, emails, passwords, server paths, personal data.
- Global AI toggle in admin settings
- Per-user consent required before first interaction
- Rate limiting: 10 req/min, 100 req/day per user
- Full audit log of all AI requests
When AI is enabled, data is processed by Google Gemini API. For GDPR compliance, review Google's Data Processing Addendum.
- Frontend: Vue 3.5, Vite, Pinia, @nextcloud/vue 9
- Backend: PHP 8.1+, Nextcloud App Framework, QBMapper
- Tests: 961 unit tests (Vitest), PHPStan Level 5, ESLint, 4-gate CI pipeline
- Real-time: Server-Sent Events for multiplayer modes
- Caching: Redis support for leaderboard and session data
- Nextcloud 29–33
- PHP 8.1+
- PostgreSQL 13+ or MySQL 8+
A public demo is available at devcloud.andrestiebitz.de with pre-configured accounts:
| Account | Role | What you'll see |
|---|---|---|
demo-student |
Student | 50 flashcards across Leitner boxes, Level 7, 14-day streak, badges, due cards in Smart Queue |
demo-dozent |
Instructor | Course dashboard, student progress, curriculum timeline |
demo-admin |
Admin | Admin dashboard, CSV export, all courses |
Demo data resets nightly. Request passwords via GitHub issue.
Contributions are welcome! Whether it's bug reports, feature ideas, translations, or code — feel free to open an issue or PR.
The app is primarily developed in German (l10n), but the codebase and documentation are in English.
AGPL-3.0 — see LICENSE


