Taking Attendance (Swipe Screen)
Gestures, keyboard shortcuts, reasons, mark-all, and undo on the swipe screen.
This is the core of the app: /swipe/[sectionId], reached by tapping Check Attendance or Edit Attendance on a class.
Layout
- Back arrow (top left) — return to the class.
- Title (top center, tappable) — shows the class name and “X left · [date]” (plus session label if you started a New Session). Tap it to open the section switcher: a popup listing every class with today’s tally, so you can jump straight to another class without going back.
- Order buttons (segmented, next to title):
- Shuffle icon — random student order.
- A–Z — alphabetical order.
- M/F (appears only when A–Z is active) — groups males then females within alphabetical order.
- History icon (top right).
The card
One student card at a time, with the next student peeking behind it. Each card shows:
- Last name (large) and first name below it.
- The student’s photo if uploaded, otherwise a solid color unique to that student.
- Warning badges if relevant, e.g. “3rd absence this week,” “2nd tardy this week,” “4 in a row” (consecutive absences).
Tap the card (without swiping) to see a quick history of the student’s last 5 attendance records.
Marking attendance — gestures and keyboard
| Action | Swipe | Keyboard | Result |
|---|---|---|---|
| Present | Swipe right | → | Marks Present, moves to next student immediately |
| Excused | Swipe left | ← | Opens the reason row for Excused |
| Late | Swipe down | ↓ | Opens the reason row for Late |
| Skip | Swipe up | ↑ | Defers this student to a second pass at the end |
As you drag a card, it tints green/red/orange/white toward the direction you’re pulling, so you get feedback before releasing. Each successful swipe plays a short tick sound and a brief vibration (silently skipped on devices/browsers without vibration support).
There’s also an Absent button pinned in the bottom bar at all times — tap it to mark the current student absent directly without swiping.
Reasons
When you swipe left (Excused) or down (Late), a row of reason chips appears below the card instead of moving on immediately. Tap a reason to finalize; the app remembers the last reason you picked for that student and surfaces it as the first chip next time. Tap Other to type a free-text note instead of picking a preset reason.
While a reason row is open:
- Press Esc or Enter to finalize without picking a reason.
- Tap Skip to defer the student instead.
Customize the list of reason codes in Settings → Reason Codes.
Skipped students / grace period
Anyone you swipe up (skip) goes to the back of the queue. Once you’ve gone through everyone once, an amber banner appears: “↩ Reviewing skipped students — X left” — this is your second pass to finish the students you deferred.
Mark all present / Finish
Above the card stack:
- Mark all present — marks everyone still unrecorded as Present in one action (skips the student currently mid-reason-entry to avoid a duplicate record). Useful for a class that’s clearly all present.
- Finish — ends the session. If anyone is still unrecorded, you’ll see: “X unchecked will be left blank” with End session / Cancel to confirm.
Every action shows a toast at the bottom with an Undo link — tap it immediately after a mistake to reverse that one action (or the whole “mark all” batch).
Session recap
Once everyone’s processed, you get a recap screen:
- “All done! [Section] · [Date]”
- Tally line: Present / Absent / Late / Excused / No Class counts
- A breakdown of reasons used, sorted by frequency
- Done button to return to the class
If the class has no students
You’ll see “No students in this class yet.” with a Back to classes button — go add students first via the Registrar.
Read-only accounts
If your trial has ended or your subscription lapsed, the swipe screen shows a lock overlay: “Account is read-only — Your trial has ended. Upgrade to continue marking attendance.” with an Upgrade to continue → button. You can still view but not record attendance until you upgrade (see Account, Trial & Billing).