Testing the app
Prerequisites
# 1. Start the full stack (db → seed → import → app → worker)
cd nexora
docker compose up --build -d
# 2. Check
docker compose ps
# App on http://localhost:5173
The import is a one-shot: if already done (marker
processing/data/.import_done), it will not rerun. To force a re-import:
rm processing/data/.import_done && docker compose up import
Standard demo walkthrough (5 min)
- Log in →
[email protected]/demo1234(or click the account on the login page). - Pick a lesson: Class selector → Course button
(“Choose a lesson…”) → the calendar opens → click a day → Open this
lesson →.
!!! tip "Shortcut"
The selection is remembered in
localStorage(nexora.dashboard.selection) and URL-driven:/dashboard?class=1&session=1loads the 1st lesson (islam_march_01). - Read the class metrics (“Class average” row), then click a student.
- Open the student panel on the right: level, domains, attention metrics, cumulative history, recommendation, actions (IEP, parent report, full report, save to plan).
- â–¶ Watch video: player with synchronized timeline student / class.
- ↓ Export PDF: class teaching report.
- Tabs: History, Stats, Messages, Follow-Up (and âš™ Admin as admin).
Priority checklist
- [ ] Login of the 6 accounts (4 roles) — different badges / tabs per role.
- [ ] Class → course selection → the 7 metrics display (no “—”).
- [ ] Engagement chart: colored segments by level, minute ticks.
- [ ] Students table: sorting, flag ⚠/ 🚨, trend ▲▼.
- [ ] Student panel: 6 domain bars, attention grid, cumulative (5 sessions), “Tomorrow's” recommendation.
- [ ] Metric tooltips “?”: hover = explanation, click = doc (new tab).
- [ ] Video: playback + seek (HTTP Range 206), timeline follows the cursor.
- [ ] PDF export of the class report.
- [ ] Save to plan → the student appears in the Follow-Up tab.
- [ ] Stats: average by subject and by day for the selected month.
- [ ] Admin: video upload, CSV import → pipeline (bronze→gold), user accounts.
- [ ] Parent portal: child selector (parent.test1 has 2 children), summary, individual timeline.
Dataset
processing/data/march_labels_clean.csv(651 000 rows): final merged annotations of the 15 lessons (15 lessons Ă— 31 students Ă— 200 windows Ă— 7 categories).processing/data/march_sessions.csv: metadata of the 15 sessions.- Demo video:
full_class_merged.mp4(50 min, 2.1 GB) plays on the 1st islam lesson (islam_march_01).
Local database
docker exec -it nexora-db psql -U nexora -d nexora
# tables: classes, subjects, students, sessions, user, parent_students, followups, messages…