Attendance¶
Faculty mark attendance for the session they're teaching. Admins configure, audit and correct. Learners and guardians view.
The split follows one rule: the ERP is the registrar's office, the classroom is where the roll is called. Admins are never offered a marking tool, and faculty find marking in their own sidebar.
K-12 and higher ed¶
| K-12 | Higher ed | |
|---|---|---|
| Unit marked | Section, daily | Subject × cohort, per class |
| Who marks | Class trainer | Subject faculty |
| Faculty assignment | Subject × class/section | Subject × semester (covers all its batches) |
| Learner view | Monthly calendar and streak | Subject-wise percentages |
Every record belongs to one cohort: a K-12 section, a higher-ed batch, or the semester as a whole. A faculty member teaching Maths to Semester 1 with batches A and B plus some unbatched students sees three entries: Semester 1 / A, Semester 1 / B and Semester 1.
Surfaces¶
/attendance is one route that renders per role.
- Faculty: when the timetable is published, today's sessions are listed with a Mark button. Tapping one opens the roster already bound to the cohort, subject and date, defaulted to present. Without a timetable, faculty pick subject and date instead.
- Learners see their calendar or subject percentages.
- Guardians see their child's attendance at
/parent/attendance.
/admin/attendance is for org admins and unit managers:
| Tab | Purpose |
|---|---|
| Face enrollment | Enrollment dashboard, learner roster with consent status, bulk consent requests, the enrollment wizard |
| Analytics | Attendance statistics |
| Regularize | Correct a record with a required reason. The original value and the correcting user are kept. |
Faculty who open the admin route are redirected to /attendance.
Face attendance and consent¶
Enrollment captures or uploads a photo and stores an embedding. In the Kwilo Campus app, faculty fill the roster three ways and can override any row before saving:
- Manual: Present, Absent, Late or Excused per learner.
- Scan a face: front camera, one learner at a time.
- Group photo: back camera, the whole room. The summary says how many faces weren't recognised.
Matching runs on the server against the enrolled learners of that cohort only, and nothing is stored from the photo. Face-matched marks are saved with the method and a confidence score.
Before a minor is enrolled, the institution sends a consent request by SMS or email. The parent opens the link, reads what's collected, why, how it's secured, how long it's kept and their rights, then accepts or rejects. Consent is required for K-12 schools and PU colleges. Universities and degree colleges may not require it.
Planned¶
- Unmarked-session view: which sessions went unmarked, by whom, when.
- Defaulter and shortage reports against a minimum threshold (the VTU 75% rule), exportable.
Where it lives¶
- Web:
apps/web/src/erp/attendance/,/admin/face-enrollment - Backend:
apps/backend/src/erp/attendance/,apps/backend/src/erp/cohort.py