Workforce / Operations · 2026
Security Workforce Management (Dawn to Dusk)
Guard rostering, attendance, compliance, client sites and invoicing for a UK security company, with a PIN-based mobile app for guards and managers.
- Client
- Dawn to Dusk Facilities, security and facilities company, UK
- Role
- Product design, build, deploy
- Stack
- Node.js 22 · node:sqlite · Vanilla JS PWA · Docker · Railway
Updated 11 Nov 2026

The problem
Shifts were planned in spreadsheets, guards reported by phone call, SIA licence expiries were tracked in someone's head, and invoices were rebuilt from the roster at month end.
What I built
A zero-dependency Node server with a desktop admin app and a mobile web app. Guards check in with a PIN at the site; managers see the roster, live attendance and compliance gaps; finance generates invoices and payroll from the same shift data. Deployed on Railway with a persistent volume and one-click backup.
- Workforce: employees, sub-contractors, groups, dormant staff, holidays
- Roster: shift planning per site, add-shift flow, calendar view
- Mobile app: guard check-in / check-out, manager view, PIN sign-in
- Compliance: licence and training expiries with alerts
- Clients & sites with contract rates
- Finance: client invoices and employee payroll from attendance; timesheet, income and invoice reports
- Gross profit per site from site-type charge rates vs staff rates
- Roles with a per-module permission matrix; 20-minute idle sign-out
- Settings → System: sample data, backup / restore, storage status
Outcome
83 API routes and 20 tables in a zero-dependency server; the company runs rostering, attendance and billing from one system and the data survives redeploys on a mounted volume.
Screens








Want this for your company?
The engagement is described on the Security workforce management service page: who it is for, what you get, how it runs, and the questions I get asked.
Offered through Tech Solutions
This kind of system is delivered commercially by my company, Tech Solutions. The matching pages there:
Notes from this build
Have a process like this?
Send me the thing your team does by hand every week. I will tell you honestly whether it is worth automating, even when the answer is no.


