🎯 System Status
🚨 Needs Attention
Checking...
🖥 Devices
👤 Staff Management
| Employee ID | Name | Company | Department | Card No. | Face | Active | Actions |
|---|---|---|---|---|---|---|---|
| Loading... | |||||||
🤖 Smart Import (AI-assisted)
Drop in any staff spreadsheet or a ZIP of photos with any filenames. OwlSentry checks every row (IDs, NRIC/FIN checksums, duplicates, trades) and matches photos to workers — with Claude AI reading odd column names, trade descriptions and photo filenames. You confirm before anything is imported.
🎫 Visitor QR passes
Issue a time-boxed QR pass for a visitor, consultant or delivery. They show it on their phone at the terminal; the visit is logged like a check-in. No face enrolment needed.
🏠 Residents (nursing home) — where each resident lives decides which floor a visitor may reach
| Code | Visitor | Host / purpose | Access | Valid | Scans | Status | Actions |
|---|---|---|---|---|---|---|---|
| No passes yet | |||||||
📦 Mass Uploads
Columns: employee_id, name, email (required) + company, department, position, phone, card_number (optional). Existing employee IDs are updated.
Download template
ZIP containing images named <employee_id>.jpg / .jpeg / .png (e.g. EMP001.jpg). Faces are matched to staff by employee ID.
Columns: employee_id, card_number. Duplicate cards are rejected per-row.
🗺 Terminal access matrix
Which terminals each worker is loaded on (✓ = confirmed by a push or a reconciliation). Click a cell to grant or remove that worker's access on that terminal — e.g. keep a worker on one turnstile's IN and OUT only. Removed access (⛔) sticks: Sync Faces, approvals and restores will not put them back on that terminal.
| Loading… |
📤 Upload Faces to Devices
Select Staff (only enrolled faces can be pushed)
Select Devices
🔁 Full Device Sync & Status
📋 Registered Devices — Operations & Maintenance
➕ Register New Device
🔐 System Users
Roles — admin: full control incl. users & destructive maintenance · operator: staff, faces, cards, device operations · viewer: read only. User management requires an admin login.
| Username | Full Name | Role | Active | Last Login | Actions |
|---|---|---|---|---|---|
| Admin role required — login as an admin user | |||||
🏢 Tenants
Each tenant is a company: its users see only their own workers, check-ins and records, and their reports carry their logo.
| Logo | Company | Admin login | Workers | Users | Devices | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
➕ New Tenant
🛰 CPD Submission to BCA (SGBuildex)
Monthly Construction Productivity Data, submitted automatically to BCA. Follow the three steps — the page tells you exactly what's missing.
🧭 SGBuildex onboarding tracker
Everything BCA has published is built in. Tick steps as you complete them; the last two need the developer pack (OpenAPI spec + credentials) from DEX/SGBuildex.
👷 Workers needing attention
Every worker needs an NRIC/FIN or Work Permit and a BCA trade. Fix them right here — or bulk-update via the CSV template (columns nric_fin, work_permit, bca_trade, employer_name, employer_uen).
| Worker | NRIC/FIN | Work Permit | BCA Trade | Employer (subcontractor) | Employer UEN | Status |
|---|---|---|---|---|---|---|
| Loading… | ||||||
📅 Monthly dataset
| Code | Trade | Mandays | Unique Workers |
|---|---|---|---|
| Choose a month and press Build & Validate | |||
Submission history
🛠 Platform
System-level tools for the OwlSentry administrator: backups, health, global role defaults and resets. These affect all tenants.
.sql (includes CREATE DATABASE IF NOT EXISTS) + uploads archive (face photos, logos). Restore: mysql -u root -p < owlsentry_<stamp>.sql then extract the archive into the app folder.🛠 Maintenance
Housekeeping for your company's data only — records, workers and photos of other tenants are never affected.
📜 Audit Trail (admin)
| Time | Action | Table | Record | Detail |
|---|
⚙️ Device Configuration
🔐 Role Permissions
Tick what each role may do.
Recognition confidence and timing defaults pushed to your terminals. Leave the terminal selector on "All" to apply to every terminal you own.
Live Check-ins
Updates automatically every few seconds while this page is open. Shows the photo captured by the terminal at the gate (or the enrolled photo if the terminal doesn't send one).
🗂 Access Records — All Devices
Search every face/card check-in across all terminals — realtime punches and pulled logs together.
| Time | ID | Name | Company | Device | Status | Temp | Photo |
|---|---|---|---|---|---|---|---|
| Press Search to query records | |||||||
📈 Reports
🔑 Access Activity
Traffic by Station
| Station | Events |
|---|
Traffic by Company
| Company | Events |
|---|
Denial Reasons
| Reason | Count |
|---|
🚧 Anti-passback & Presence
Irregular gate use from IN/OUT terminals: double INs (a colleague let through on one scan), OUT without IN (tailgated in), and days with no OUT by end of day.
| Date | Time | Worker | Employer / Subcontractor | Terminal | Issue |
|---|---|---|---|---|---|
| Loading… | |||||
🕐 Attendance (first in / last out)
| Date | Employee | Company | First In | Last Out | Events |
|---|
✅ Staff Enrollment Completeness
| Employee | Company | Face | Card | Devices Synced | Status |
|---|
🖥 Device Health
| Device | Address | Status | Last Heartbeat | Faces Synced | Failed Syncs |
|---|
