Attendance

Staff attendance and the QR clock

The rotating QR code that replaces a fingerprint scanner, and the reports it produces.

Written for School adminTeacher
On this page

This page has no sections.

Most schools clock staff in with a fingerprint reader on a wall. It costs money, it breaks, it queues, and it stops working the week somebody’s hands are cold. Alviyora replaces it with a code on a screen and the phone every member of staff already carries.

An administrator displays the code. Staff scan it. A timer starts. That is the whole feature — and everything below is about the small number of details that make it trustworthy.

The Attendance page as an administrator sees it: the code to display, its countdown, and who is currently on site.

Displaying the code

Who can do this

Generating the code needs the Admin or Principal role. Clocking in with it needs View Attendance, which the Teacher role holds by default.

Go to Attendance. The QR code is at the top of the page, with a countdown under it.

Put that screen somewhere staff pass on the way in — a monitor at reception, a tablet on the wall, a laptop on the front desk. Anything that displays a web page will do.

The code expires

Each code lasts three hours from the moment it is generated, and the countdown shows exactly how long is left. When it runs out the page tells you, and Generate New Code issues a fresh one immediately.

This is the point of the whole design. A code that never changed could be photographed once and shared in a staff WhatsApp group forever, and your attendance register would become fiction. A rotating code is worthless the moment it is out of date.

Tip

Generate New Code at any time — you do not have to wait for expiry. Do it if you have reason to think a photograph of the current one is circulating. The old code stops working the instant a new one is made.

Attendance follows your school hours

Staff can only clock in on a day your school is switched on under School Settings → school hours. On a day that is switched off, the clock button turns grey, reads Closed today, and explains why when pressed. Administrators are shown a link straight to the setting; everybody else is told to ask an administrator.

This is stricter than it used to be, and deliberately so. A day the school is closed has no start time, so an arrival on it can be neither on time nor late — and a session recorded against it used to read Present in the reports and Late on the dashboard at the same time. Now the school decides which days count, once, and every screen afterwards agrees.

Running Saturday classes?

Switch Saturday on under School Settings → school hours before the first one, with the start time you actually want measured. Nobody can clock in on a day that is switched off — not teachers, and not administrators either. Switch it back off when the term of extra classes ends.

Clocking out is never blocked. Somebody who clocked in legitimately can always close their session, including after midnight into a day the school is shut.

Clocking in

Open the camera on your phone

Any phone camera reads a QR code. There is no app to install.

Point it at the code

A link appears. Tap it.

You are clocked in

The page opens in your browser, confirms it, and a timer starts. You do not have to do anything else, and you can close the tab.

Clocking out is the same action: scan the code again, and the session closes. There is also a Clock In / Clock Out button on the Attendance page and on your dashboard, for the days when the camera is being difficult.

The same page on a phone. Clocking in and out is designed around this screen, not around a desktop.

When somebody has no phone

Not every employee carries a smartphone with a working camera, and a caretaker who cannot clock in cannot be paid. Clock staff in manually on the Attendance page lets an administrator do it for them.

Who can do this

Manage Staff Attendance. It is a separate permission from View Attendance Reports on purpose: reading what a month looked like and writing the hours it will be paid on are not the same thing. A school can give an office manager the second without the first.

Find them in the list

Every staff member is listed with their current state — on site since a time, or not clocked in.

Press Clock in or Clock out

A confirmation appears. Nothing is written on a single tap.

Set the time, if it was not just now

Leave the time blank and the current time is used. Fill it in — 07:25 — and that is what is recorded. This is the field that matters: somebody who arrived at seven and only reaches the office at nine would otherwise be marked two hours late by the act of being recorded at all.

Add a reason, if it helps

Free text — “no smartphone”, “phone flat”. It appears in the record and in the activity log.

Every manual entry is stamped with the administrator who made it and the reason they gave, and appears in the activity log. Reports can always tell a time somebody scanned from a time somebody typed for them.

Scanning twice does not clock you in twice

Phone browsers restore tabs. A tab left open on Tuesday can reopen itself on Wednesday morning, and a naive system would read that as a fresh scan and clock you in at 06:40 without your knowledge.

Alviyora does not do that. Your phone remembers which codes it has already spent today, and a page that merely reopens only reports your status — it never writes. Only a code this device has not already used, for somebody not already clocked in, actually starts a session.

Present, or late?

Whether a session counts as Present or Late is measured against your school’s own hours, not against a fixed time:

  • School Settings holds a start time for each day of the week, and marks the days you are closed.
  • A grace period — a few minutes by default — sits after that start time. Arrive inside it and you are Present.

Set both under School Settings before you rely on the reports. A school that starts at 07:15 and never changed the default will find its whole staff marked late.

There is a third answer, Out of hours, for a session on a day the school is not open for. Since clocking in on a closed day is now refused, the only way to see one is history — a term of Saturday classes that has since been switched back off. It is counted and shown separately, and left out of the attendance percentage on both sides: it cannot inflate a rate, and it cannot cancel out a weekday absence.

Who is on site right now

Clocked In Right Now on the Attendance page and on your dashboard is a live list of everybody currently clocked in, with a running timer beside each name and a count — 1 of 176 staff on site.

The timers are anchored to the server’s count rather than to the viewing device’s clock, so a laptop with the wrong time still shows the right elapsed figures.

This is the screen to open during a fire drill.

Your own history

The Attendance page also holds your personal record:

  • A calendar for the month, colour-coded by day.
  • A table of sessions with clock-in time, clock-out time and hours worked.
  • Month arrows to look back.
  • Summary tiles: days present, days absent, days late, and average hours.

A session still running shows as open rather than as zero hours.

Nothing clocks you out automatically

If you forget, the session stays open — it is not closed for you at midnight or at the end of the school day, and it never will be. You still count as present for that day, but the day contributes no hours until somebody sets the leaving time. That is on purpose: a guessed end time is a guessed wage.

Tell an administrator. They can enter the time you actually left, from the missing clock-outs report.

Reports for everyone

Administrators — anyone with View Attendance Reports — get the same picture across all staff, filterable by person and period. That is covered on its own page.

Common problems

“I scanned and nothing happened.” The code has probably expired. Look at the countdown on the display; if it has run out, ask for a new one.

“It says I’m already clocked in.” You are — from earlier, or from a previous day where you never clocked out. Clock out, then in again. Any session left open shows up on the administrator’s missing clock-outs report, where the real leaving time can be entered.

“It says today is not a school day.” The day is switched off under School Settings → school hours. An administrator has to switch it on before anybody can clock in — including the administrator.

“The camera won’t open the link.” Some older phone cameras do not open links directly. Any free QR reader works, or use the Clock In button on the Attendance page instead — signing in on your phone and pressing the button achieves the same thing.

“Everyone is showing as late.” School hours or the grace period are wrong. See School settings.