-
Notifications
You must be signed in to change notification settings - Fork 0
Kiosk Mode
sarmakska edited this page May 31, 2026
·
1 revision
The kiosk is a public, login-free page at /kiosk for shared devices at the office entrance. Staff clock in and out with a personal PIN, and reception can check visitors in. It is designed to work equally well on a wall-mounted tablet and on a phone.
The kiosk layout in app/kiosk/kiosk-client.tsx is responsive from the smallest phone up to a large tablet:
- A mobile tab switcher toggles between the staff grid and the visitor panel on narrow screens, while wide screens show both side by side.
- The staff grid scales its columns with the breakpoint (
grid-cols-2on phones up to2xl:grid-cols-4). - Tap targets are large with active-press feedback for touch use.
- The layout in
app/kiosk/layout.tsxsets a fixed-scale viewport withviewportFit: cover, ships a PWA manifest, and enables Apple web-app mode so the kiosk can be pinned to a home screen and run full screen.
- A staff member taps their name, then enters their kiosk PIN on the keypad.
-
authenticateKioskPinvalidates the PIN againstuser_profiles.kiosk_pinusing the service-role client and reports whether the person is already clocked in and whether a work-from-home declaration blocks clock-in for the day. -
submitKioskAttendancewrites or updates the day'sattendancerow, calculating hours on clock-out, and records akiosk_clock_inorkiosk_clock_outevent in the audit log.
Staff set or change their PIN under Settings, Kiosk PIN. Reception manages PINs for others under Admin, Kiosk Settings.
Reception can check pre-registered visitors in directly from the kiosk. The host receives an email and a printable PDF pass is produced. See the visitor flow in Home.
- The kiosk bypasses the normal login but every action is tied to a PIN and recorded in the audit log.
- It uses scoped server actions for clock in or out and visitor check-in only; no other data is reachable from the public page.
- Incorrect PIN. The PIN does not match any active user. Reset it under Settings, Kiosk PIN.
- Clock-in blocked. The member has a work-from-home declaration for the day; the kiosk explains when clock-in is allowed.