Klub is a school assistance app that puts courses, documents, and AI help in one place. It uses the Ecole Directe (Mon ENT) ecosystem to retrieve student data (homework and grades), then adds AI tools to help with study and revision.
- Frontend: Angular 17 (+ Tailwind CSS)
- Backend: Flask (Python 3.11)
- AI: Groq API
- Deployment: Docker + Nginx
- Create
backend/.envfrombackend/exemple.env. - Fill these variables in
backend/.env:GROQ_API_KEYSECRET_KEYACCESS_CODE
- Start the app:
docker-compose up --build- Open:
- Frontend:
http://localhost:4200 - Backend health check:
http://localhost:5000/api/health
- Frontend:
cd frontend
npm install
npm startcd backend
pip install -r requirements.txt
python app.py- Login route:
POST /api/auth/loginwith JSON body:{ "code": "<ACCESS_CODE>" } - Most
/api/*routes require an authenticated session. - Public routes:
/api/auth/loginand/api/health
| Endpoint | Method | Description |
|---|---|---|
/api/cours |
GET, POST |
List or create course files |
/api/cours/<matiere>/<nom> |
DELETE |
Delete a course file |
/api/flash-cards |
GET, POST |
List or create flash-card sets |
/api/devoirs |
GET |
Get homework data |
/api/notes |
GET |
Get grades |
/api/notes/commentaire |
GET |
Generate AI grade comment |
/api/chat_devoirs |
POST |
AI help for homework |
/api/cours/chat |
POST |
AI chat using a selected course |
/api/chat/global |
POST |
General AI chat with tools |
/api/ocr |
POST |
OCR from images and save as a course |
- Use
docker-compose.prod.ymlfor production. - Services are bound to
127.0.0.1in prod compose. - Frontend Nginx production config includes HTTP Basic Auth.
GNU GPL v3 (see LICENSE).