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).