Timetable Engine — End-to-End Walkthrough
Follow these steps in order — each role picks up where the previous left off. This is a read-only user guide entry; no code in ILS-dev is modified.
Prerequisites
- At least one Class exists (e.g. BK Jaar 1 — 2025/2026)
- At least one Academic Period is set (e.g. Semester 1)
- Academic Calendar has at least one holiday event (to test skip logic)
- The class has at least one enrolled student and one assigned teacher
Phase 1 — Admin/Coordinator: Create & Activate Timetable
- Open the Timetable page:
/admin/timetable, select the class — you should see "No timetable configured yet". - Create a timetable: click New Timetable, select class and academic period, save → timetable appears with status
draft. - Add recurring slots: click Add Slot; e.g. Monday 09:00–11:00, Wednesday 14:00–16:00; save — slots listed.
- Activate: click Activate → system generates session rows up to period end; holiday dates are marked
cancelledand show holiday name. - Inspect sessions: confirm scheduled vs cancelled/makeup statuses and expected session count.
Teacher assignment flow (important note)
Before creating timetable rules, confirm teachers are assigned at the class level:
- Open
/admin/my-classes→ select the class (e.g. BK-J1-2526) → go to Setup Curriculum and confirm each module has a teacher assigned (this creates aclass_module_teachersrow). - Now open
/admin/timetable→ select the class → the Schedule Rules matrix will pull modules from the class curriculum. When you create a rule and pick a module, the teacher field will auto-fill from theclass_module_teachersassignment. If multiple teachers are assigned to the same module, choose the teacher to use for that rule.
Corrected end-to-end steps:
/admin/my-classes→ BK-J1-2526 → Setup Curriculum → confirm modules have a teacher assigned/admin/timetable→ BK-J1-2526 → matrix shows Semester 2 row / Mon column → click+ Add→ pick module → teacher auto-fills → Save- Click Generate sessions → confirm count
- Check teacher calendar at
/teacher/calendar - Check student calendar at
/student/calendar
Question: Are the teachers already assigned in my-classes, or does that need to be done first? Short answer: Yes — assign teachers first in my-classes; timetable rules read those assignments.
Phase 2 — Teacher: Mark Attendance
- Open teacher schedule: log in as assigned teacher →
/admin/my-schedule, week view with session blocks. - Mark a session as held: click a session block → Mark as Held; status becomes
held. - Register attendance: open session → Attendance, mark Present/Absent, save → confirmation badge.
- Cancel a session: choose a future session → Cancel, enter reason → status
cancelled. - Add a makeup session: on a cancelled session → Schedule Makeup, pick date/time → new session with status
makeup.
Phase 3 — Session Edit (occurrence / following)
- Edit a single session: choose This occurrence only when changing time/room — only that session updates.
- Edit this and following: choose This and all following to update sessions from this point onward.
Phase 4 — Student View
- Student calendar: log in as an enrolled student → calendar shows sessions with color coding and status badges.
- Attendance badge on dashboard: student dashboard shows donut reflecting sessions held vs attended.
Phase 5 — Curriculum Hook (optional)
- Link a session to module content: open a session (teacher/admin) → Lessons/Curriculum tab → add planned module item; after session mark as covered.
What to note during testing
- Flag any step that errors or shows blank.
- Flag confusing UI text.
- Flag missing functionality.
Those gaps become the remaining Timetable Engine work.
Last updated: 2026-07-08