Chapter 7

Attendance

school_adminprincipalclass_teachersubject_teacher

Overview

Attendance can be taken in two modes, configured per school: Daily (one mark per student per day) and Period-wise (one mark per student per period). This chapter walks through both, plus how a Principal corrects an already-submitted record, the Admin's report view, and — in detail — how CampusOS decides exactly who is allowed to take attendance for which class.

Attendance modes

  • DailyOne Present/Absent/Leave mark per student, per day. The simplest mode — right for a school without a fixed period-by-period timetable.
  • Half-DayTwo marks per student per day (morning/afternoon) — for schools that split the day into two attendance windows.
  • Period-wiseOne mark per student, per period, cross-checked against the actual Timetable slot for that class/day/period — the most granular mode, and the only one where a Subject Teacher's exact scheduled period is enforced (see 7.6 below).

7.1 Assigning a Class Teacher

The Class Teacher Assignments screen before any class has an assigned teacher
Figure 7.96. Class Teacher Assignments — empty.
Shantha Kumar assigned as the Class Teacher for Class 5, Section A
Figure 7.97. A teacher assigned as Class Teacher for Class 5, Section A.
This assignment is not optional

A Class Teacher with no assignment for a class cannot take attendance for it at all — see 7.6 below. Assigning the Class Teacher is a required setup step, not a cosmetic one, before Take Attendance will work for that class.

7.2 Daily mode

The Take Attendance screen for the Class Teacher, before selecting a date
Figure 7.98. Take Attendance, as the assigned Class Teacher — before picking a date.
An error shown when trying to take attendance on a Sunday, a non-working day
Figure 7.99. Negative scenario — a non-working day (Sunday) is rejected.
The Class 5A roster loaded for a Monday, defaulting every student to Present
Figure 7.100. The roster loaded for a working day — every student defaults to Present. Note that Priya (transferred in Chapter 5) does not appear.
One student marked Absent and one marked Leave
Figure 7.101. A realistic mix marked: one student Absent, one on Leave.
Confirmation that the day’s attendance was submitted
Figure 7.102. Submitted for the day.

7.3 Principal correction

Why a "correction" is a distinct action from the original submission, not just an edit.

The Principal viewing the same day’s already-submitted attendance
Figure 7.103. The Principal opens the same day’s attendance — already-submitted records are editable only by the Principal (or Admin), never by the original teacher.
An error when a Principal tries to submit a correction without giving a reason
Figure 7.104. Negative scenario — correcting a mark without giving a reason is rejected.
Confirmation that the Principal’s correction, with a reason, was submitted
Figure 7.105. Corrected, with a reason recorded against the change.

7.4 Admin report

The Attendance Report screen, showing per-student percentages for Class 5A
Figure 7.106. The Attendance Report — per-student attendance percentages for Class 5A. Restricted to School Admin/Principal.

7.5 Period-wise mode

The Attendance Settings screen, currently set to Daily mode
Figure 7.107. Attendance Settings, currently Daily mode.
The Attendance Settings screen after switching to Period-wise mode
Figure 7.108. Switched to Period-wise mode.
The Take Attendance screen in Period-wise mode, before a period is selected
Figure 7.109. Take Attendance in Period-wise mode — a specific period must be selected first.
The Class 5A roster loaded for a specific period
Figure 7.110. The roster loaded for that period.
Confirmation that period-wise attendance was submitted
Figure 7.111. Submitted for that period.
The Principal viewing and correcting the same period’s attendance
Figure 7.112. The Principal corrects the same period’s attendance — the identical correction mechanism as Daily mode.
Confirmation that the period-wise correction was submitted
Figure 7.113. Corrected, with a reason.

7.6 How access is enforced (Role-Based Access Control)

Two roles can take attendance beyond School Admin/Principal — Class Teacher and Subject Teacher — and each is scoped differently, checked on every single request (not just hidden in the menu):

A Class Teacher opens Take Attendance for a specific class/section — are they assigned to it?

Checked against the Class Teacher Assignments table from 7.1, on every read and every submission. There is no fallback: an unassigned Class Teacher cannot reach any class, not just the "wrong" one.

Access granted
A Class Teacher Assignment row exists naming this teacher for this exact class/section

Full access — view the roster, take attendance, see it reflected in reports.

Access denied
No assignment exists for this teacher and class/section (including "no assignment configured at all")

Blocked outright with a "wrong class" error — assigning the teacher (7.1) is what unlocks this.

A Subject Teacher opens Take Attendance — are they mapped to this class/section, and (in Period-wise mode) is this their scheduled period?

Checked against the Teacher-Subject Mapping table from Chapter 6.2, plus — only when the school is in Period-wise mode — the live Timetable slot for that exact day and period.

Access granted
A mapping exists for this class/section, and — in Period-wise mode — the timetable names this teacher for this exact period

Access granted, scoped to that class/section (and that period, in Period-wise mode).

Access denied
No mapping exists for this class/section, or (Period-wise mode) the timetable slot names a different teacher or no slot at all

Blocked — a Subject Teacher can never take attendance for a period they are not verifiably scheduled to teach.

An approved leave request locks the record

If a parent’s leave request (Chapter 9) has been approved for a student on a given date, that student’s attendance is locked to "Leave" for everyone — including a Principal’s correction. To change it, amend or reject the leave request itself, not the attendance record directly.

Validation rules & common errors

Validation rules & common errors
TriggerError shownResolution
Attendance attempted on a holiday or non-working day Attendance cannot be submitted for a holiday or non-working day Pick a valid working day.
The same class/date/type submitted a second time by a teacher Attendance already submitted Only a Principal (or Admin) can correct already-submitted attendance.
A Principal changes a student’s mark without giving a reason A reason is required for every student whose attendance you are correcting Give a per-student or class-level reason for the correction.
Period-wise mode active but no period selected "period_no" is required when the school’s attendance mode is Period-wise Select a period before the roster will load.
A Class Teacher with no assignment opens any class "Wrong class" / access denied An Admin must create a Class Teacher Assignment for them first (7.1).
A Subject Teacher opens a class/section they have no mapping for "Wrong class" / access denied An Admin must create a Teacher-Subject Mapping for them first (6.2).