—
PUNCH TERMINAL — LIVE CAMERA
activate the camera
TODAY
DEMO OVERRIDES
Punch-in uses your real camera and real GPS by default. Flip these on to reliably show the reject flow during a walkthrough.
Face-matching is simulated in this demo — a production build would call a real face-recognition API against the enrolled profile photo.
—
—
CONTACT
MONTH CALENDAR
DAY-WISE REGISTER
| Date | Day | Shift | In | Out | Hours | Late | OT | Status | Location |
|---|
RAW PUNCH LOG
| Photo | Date | Type | Time | Location | Distance | Status | Reason |
|---|
MY ROSTER
APPLY FOR MISPUNCH CORRECTION
MY REQUESTS
| Date | Type | Requested | Reason | Status |
|---|
APPLY FOR LEAVE
MY LEAVE HISTORY
| Type | From | To | Days | Status |
|---|
MY MONTHLY ATTENDANCE SUMMARY
| Date | Shift | In | Out | Hours | Status | Remark |
|---|
MY LATE-IN / EARLY-OUT / OVERTIME
| Date | Shift | Shift time | In | Out | Late by | Early out by | OT |
|---|
MY LEAVE LEDGER
| Type | From | To | Days | Reason | Status | Remark |
|---|
MY MISPUNCH HISTORY
| Date | Type | Requested | Reason | Status | Remark |
|---|
ADD USER
The camera stays live until you press Capture photo — frame the face, check the lighting, then take the shot. Nothing is saved until you capture.
ALL USERS
| Photo | Name | Code | Role | Locations | Actions |
|---|
ADD LOCATION
ALL LOCATIONS
| Name | Lat | Lng | Radius | Users | Actions |
|---|
ADD SHIFT
SHIFT MASTER
| Code | Name | Timing | Grace | Full / Half | Rostered | Actions |
|---|
Full day hours is the worked-hours threshold for a day to count as Present — set it slightly below the shift span (e.g. 7.5 for an 8-hour shift) so a normal day isn't marked half-day. Below half day hours the day still counts as half day.
A shift that crosses midnight (e.g. 22:00 → 06:00) is handled as a night shift — hours and late-in are calculated across the day boundary.
PAINT MODE — pick a shift below, then click cells to assign. Click a filled cell with the same shift selected to clear it.
UPLOAD ROSTER CSV
Existing entries for the same employee + date are overwritten
EXPECTED FORMAT
Date accepts YYYY-MM-DD or DD/MM/YYYY. Use shift code OFF (or leave blank) to mark a weekly off. Header row is optional.
LAST IMPORT RESULT
DAILY ATTENDANCE REGISTER
| Photo | Employee | Code | Shift | In | Out | Hours | Late | OT | Status | Location | Punches |
|---|
PUNCH LOGS
| Photo | Employee | Type | Date | Time | Location | Distance | Status | Reason |
|---|
MISPUNCH REQUESTS
| Employee | Date | Type | Requested | Reason | Status | Action |
|---|
LEAVE REQUESTS
| Employee | Type | From | To | Days | Reason | Status | Action |
|---|
MONTHLY ATTENDANCE SUMMARY — ALL EMPLOYEES
| Employee | Code | Rostered | Present | Half day | Absent | Leave | Weekly off | Late | Early out | Total hrs | OT hrs | Att % |
|---|
DAILY MUSTER REGISTER
| Date | Employee | Code | Shift | In | Out | Hours | Status | Location |
|---|
LATE-IN, EARLY-OUT & OVERTIME
| Date | Employee | Shift | Shift time | In | Out | Late by | Early out by | OT |
|---|
LEAVE & MISPUNCH SUMMARY
| Employee | Code | CL taken | CL bal | SL taken | SL bal | EL taken | EL bal | Pending lv | Rejected lv | Mispunch req | MP approved | MP pending |
|---|
BACKUP & RESTORE
The local database lives in this browser's localStorage. Clearing site data, using a different browser, or another device means starting fresh — so take a JSON backup before anything risky, and restore it on the other machine.
STORAGE USED
| Table | Records | Size |
|---|
localStorage caps out at roughly 5 MB per site. Punch photos are compressed to a small thumbnail, and when the store passes 80% full the oldest punch photos are dropped automatically (the punch record itself is kept).
MAINTENANCE
DANGER ZONE
“Clear all transactions” removes punches, leave and mispunch requests but keeps users, locations, shifts and roster. “Reset” restores the factory demo dataset.