Overview
The check-in page at frontend/app/check-in/page.tsx is manual-form-based only. Biometric clock-in/out is a prominently advertised feature of ManageHub. The frontend must prompt for fingerprint or face ID using the browser's Web Authentication API (WebAuthn).
Context
- Current check-in page:
frontend/app/check-in/page.tsx
useCheckIn hook: frontend/lib/react-query/hooks/workspace-tracking/useCheckIn.ts
- Browser WebAuthn API:
navigator.credentials.get({ publicKey: ... })
- Depends on BE-05 (biometric backend endpoint) being implemented first
Tasks
Files to Modify / Create
frontend/app/check-in/page.tsx
frontend/lib/react-query/hooks/workspace-tracking/useCheckIn.ts
Overview
The check-in page at
frontend/app/check-in/page.tsxis manual-form-based only. Biometric clock-in/out is a prominently advertised feature of ManageHub. The frontend must prompt for fingerprint or face ID using the browser's Web Authentication API (WebAuthn).Context
frontend/app/check-in/page.tsxuseCheckInhook:frontend/lib/react-query/hooks/workspace-tracking/useCheckIn.tsnavigator.credentials.get({ publicKey: ... })Tasks
Use Biometric Check-Inbutton to the check-in pagenavigator.credentials.get({ publicKey: challengeFromServer })to trigger the device biometric prompt (fingerprint / Face ID)POST /workspace-tracking/biometric/check-in!window.PublicKeyCredential), hide the biometric button and show a message explaining biometric is not supported on this deviceEnroll Biometricprompt that calls the registration endpointFiles to Modify / Create
frontend/app/check-in/page.tsxfrontend/lib/react-query/hooks/workspace-tracking/useCheckIn.ts