Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

02 — User Personas (Biometric Module)

Five operational personas + one passive consumer. Permission bounds from permissions.constants.ts:41-43 (biometric.log.create, biometric.log.read, biometric.device.manage). Only the clerk persona maps 1:1 to a today-implementable surface (log read); device management and enrollment screens are (planned).


1. Ops Manager / School Admin — "Riya"

AspectDetail
RoleSenior administrator; owns daily operations
ContextDesktop + phone; busy between 7:00-9:00 AM (gate rush)
GoalsGate works with zero babysitting; disputes resolved before parent asks
PainsDevice offline for 3 days unnoticed; manual re-entry when sync breaks
Permissionsbiometric.device.manage, biometric.log.read, biometric.log.create (all three)
SurfacesDevice list, sync status, log audit (planned screens)
Key metric"Did every student who entered get counted?"
BehaviourChecks device fleet once daily; flags offline devices immediately

2. Office Clerk / Device Operator — "Arjun"

AspectDetail
RoleFront-office staff who physically operates the gate device
ContextStands next to the hardware; runs the admin console on a tablet/kiosk
GoalsEnroll new students fast; re-enroll on scanner rejection; confirm a student "actually scanned"
PainsFingerprint rejected on dry hands; duplicate enrollment mistakes; unclear enrollment status
Permissionsbiometric.device.manage, biometric.log.read
SurfacesEnrollment wizard (planned), device detail, punch timeline, log search
BehaviourHigh-frequency short tasks; one-handed; hates multi-step dialogs

3. IT / Technical Admin — "Dev"

AspectDetail
RoleManages device fleet, network, vendor SDK integration
ContextDesktop; SSH-level comfort; reads logs
GoalsDiagnose sync failures; push config to devices; watch the biometric-sync queue
PainsNo worker behind biometric-sync today (jobs stall — queue.constants.ts:7, no @Processor); vendor SDK availability gates everything (FEATURE_ROADMAP.md:56)
Permissionsbiometric.device.manage, biometric.log.read
SurfacesDevice config, sync job history, Bull-Board queue view
BehaviourBatch operations; export-friendly; tolerates dense technical UI

4. Teacher — "Meera"

AspectDetail
RoleTakes class attendance; checks "who's in" at start
ContextPhone, 2 minutes before period
GoalsSee biometric check-ins merged into the class attendance view without re-counting
PainsIf derivation isn't wired, she still marks manually and trusts nothing
Permissionsattendance.mark (+ read via attendance endpoints); no biometric permission today
SurfacesClass attendance list (attendance/class/:classId); biometric contribution is passive
BehaviourOnly cares about the derived result, not the device

5. Platform Admin (cross-tenant) — "Sam"

AspectDetail
RoleStudyLyon operator; sees fleet across tenants
ContextDesktop; support tickets
GoalsFleet health; spot tenants with dead devices; vendor-SDK risk tracking
PainsNo cross-tenant biometric view exists; roadmap gates the whole feature
Surfaces(planned) platform dashboard tile
BehaviourWeekly health review

6. Parent — passive consumer

AspectDetail
RoleWants "reached school" confidence
ContextPush notification (forward-looking)
GoalsCheck-in reflected in daily attendance; late-punch alerts (proposed)
PainsDevice misread → child marked absent → angry call to office
SurfacesAttendance record only (attendance/student/:studentId)
BehaviourReads, never administers

Permission → persona matrix (real today)

PermissionSourceRiyaArjunDevMeeraSam
biometric.log.createpermissions.constants.ts:41
biometric.log.readpermissions.constants.ts:42
biometric.device.managepermissions.constants.ts:43
biometric.sync (blueprint name)blueprint Biometric.md:67

Persona acceptance notes

  • Only Riya/Arjun/Dev can touch biometric screens; Meera and parents see derived attendance only — keep biometric internals out of their navigation.
  • Arjun's enrollment flow must be ≤ 3 taps per student or it won't be used at the gate.