| backend | ||
| frontend | ||
| .env.example | ||
| .gitignore | ||
| DEPLOY.md | ||
| docker-compose.yml | ||
| PLAN.md | ||
| README.md | ||
Roostersoftware
Modulair, flexibel roostersysteem voor het speciaal onderwijs. Zie PLAN.md
voor de visie en de fasering.
Deze map bevat het resultaat van Fase 0: het fundament en een echt plugin-framework waarmee modules per school in- en uitgeschakeld kunnen worden.
Wat er nu staat
- Backend (
backend/) — Django + Django REST Framework.plugins/— het plugin-framework: een moduleregister, opslag van de aan/uit-status per module en een beheer-API.core/— de kern (altijd actief). Domeinmodellen (personen, groepen, roosterblokken, kalender) volgen in fase 1–2.modules/printing/enmodules/accounts/— twee voorbeeldmodules die zich bij opstarten aanmelden bij het register.
- Frontend (
frontend/) — React (Vite) met een zijbalk die alleen menu's toont van ingeschakelde modules, plus een scherm Modulebeheer om modules aan/uit te zetten.
Hoe modulariteit werkt (het verkoopargument)
- Een module is een gewone Django-app met een
apps.pydie inready()eenModuleSpecregistreert (naam, beschrijving, versie, afhankelijkheden en menu-items). - Het register weet wélke modules bestaan; de database onthoudt of ze aan staan. Een beheerder schakelt ze per school in/uit via Modulebeheer.
- Uitgeschakelde modules leveren geen menu's of schermen — de kern blijft overal gelijk, modules zijn los bij te schakelen.
Een nieuwe module toevoegen = nieuwe app maken, één regel in
MODULE_APPS (in backend/config/settings.py), klaar.
Starten
Backend (Django, poort 8000)
cd backend
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser # optioneel, voor /admin/
python manage.py runserver
API-eindpunten:
GET /api/modules/— alle modules met status.POST /api/modules/<key>/state/— body{"enabled": true|false}.GET /api/info/— korte systeem-/gezondheidsinfo./admin/— Django-admin (modulestatus ook hier instelbaar).
Draait SQLite niet op je projectmap (bv. op een netwerkschijf)? Zet dan
ROOSTER_DB_PATHnaar een lokaal pad, of pasDATABASESaan.
Frontend (React, poort 5173)
cd frontend
npm install
npm run dev
De dev-server stuurt /api automatisch door naar de backend op poort 8000.
Open daarna http://localhost:5173 en ga naar Modulebeheer om modules
aan/uit te zetten.
Volgende stap (Fase 1)
Kerndomein bouwen: personen (leerlingen, leerkrachten, ondersteuners), groepen en subgroepen — met beheerschermen.