Currently On Shift
Clocked in today (in each store's local time) and not yet clocked out. Auto-refreshes.
| Store | Emp No | Name | Since | On shift |
|---|
| Emp No | Name | Position | Dept | Stores | Card | Fob |
|---|
Adds an employee. Pick the home store and department first — the employee number is then auto-generated by continuing that store & department's existing numbering (or set your own). A scannable work-card barcode is created automatically — print it from Cards. To create a dashboard login (manager/admin), use Users → New user instead.
Face enroll/delete requests waiting for each store's device (applied within ~30s when online).
| Store | Action | Status | By | When (ET) |
|---|
Records
Raw punches for a single day, in each store's local timezone. For bi-weekly timesheets, use the Reports tab. The photo captured at each punch shows inline — click a thumbnail to enlarge. Clock In is green, Clock Out is red.
| Time | Store | Emp No | Name | Type | Score | Network | Photo |
|---|
Reports
Bi-weekly timesheets. Each row is a store (drag ⠿ to reorder — same order as the Stores page); each column is a two-week pay period, oldest on the left. Click Report to download that store's timesheet (.xlsx). The ✕ on a column hides that period from this page only — punch data is never touched, and hidden periods can be restored anytime. Times are in each store's local timezone; reports are generated on demand.
Stores
Click a store to see its people. Drag ⠿ to reorder. Admin+ can create or archive stores.
Store
Punches
Red = odd number of punches that day (clocked in, no clock out).
Create New Store
Create User
A login account for a supervisor, store manager, regional manager, or admin — they sign in to manage their stores and download reports.
Please confirm
Edit Person
Cards
Pick Work card or Fob, then scan / tap on the USB reader (it types the value + Enter) or type it. Issuing replaces the previous active of that type — a work card and a fob can both be active, and either one punches. Values are globally unique; fob UIDs are stored upper-case so case never matters. An 8-hex value is always treated as a fob whichever type is selected (double-scanned UIDs are auto-corrected).
| Value | Type | Status | Issued | Note |
|---|
Punches
Loading…
🔒 Two-Factor Authentication
1. In Google Authenticator (or any TOTP app) tap + → Scan a QR code and scan this:
Can't scan? Enter this key manually:
2. Enter the 6-digit code the app shows:
Save these backup codes somewhere safe. Each works once if you lose your phone — this is the only time they're shown.
Backup codes remaining: –. To re-scan on a new phone, disable and set up again.
Photo taken at the moment of this punch — confirms the employee was physically at the store when the card was scanned.
Card punches that need a human to look at the photo. No face — a valid work card was scanned but no face was in the camera (possible buddy-punching or a blocked lens). Not active here — the card belongs to a recognized employee who isn't currently active at this store (a rare sync race or store change); it's excluded from hours. Unrecognized cards are rejected at the terminal and never recorded, so they don't appear here. Look at the snapshot, then mark Reviewed to clear it from the queue.
Terminals whose Wi-Fi network changed from their usual one — a terminal may have been moved or plugged into a different network, or the store's Wi-Fi legitimately changed. Check it's expected, then Accept as normal to make the new network the baseline and clear it.
Store terminals that stopped syncing (offline > 5 min). The notice shows while a terminal is offline and clears automatically when it comes back — the count drops on its own, no action needed. Below the current-offline list are the recent offline periods with their went-offline and back-online times.
Background face check — a robot compares the face in each punch photo to the employee's stored photo and scores the similarity (higher = more likely the same person). This never blocks a punch (the work-card barcode decides that); it's an audit signal so a person can spot possible buddy-punching. Lowest scores are shown first. Same person can still score low on a bad-angle shot, so look at both photos before concluding. Only employees with a stored photo are checked.
Terminal Software Updates
System-admin only. Upload a terminal build (a .zip containing app.py and a VERSION file), then push it to stores. Each terminal downloads it, verifies its SHA-256, and self-restarts to apply. Local .env and the attendance database are preserved.
Installer Downloads
Full install packages for on-site installs / reinstalls (admin login required — they embed the sync key, so they are never public). Standard install folder since 3.0.21: C:\Punch. Reinstall discipline: back up attendance.db(+-wal/-shm) and .env first — see OPERATIONS §2c.
| Store | Device | Terminal version | Last seen (ET) |
|---|
Store Devices
One terminal per store. A device syncing from an unexpected store or new source is the signal for a rogue/relocated terminal — new devices and store changes are also logged in the Audit Log.
| Store | Device | Status | Peers | Wi-Fi (SSID) | Local IP | Last seen (ET) | Syncs |
|---|
Roles
Access levels, highest to lowest. Assign a person's role under Employees → Edit.
| Role | People | What they can do |
|---|
Audit Log
Every management action, most recent first. Times in Eastern (ET).
| When (ET) | Who | Action | Target | Detail |
|---|
Users
Accounts that can sign in (dashboard or store terminal) to manage their stores and download reports. Employees who only punch a card are under Employees.
| Name | Emp No | Role | Stores | Dashboard login | Active |
|---|