Security patrol app development
ROGR
A security patrol planning app that turns site inspection rules into guard schedules, with a manager workspace and a mobile driver app.
From inspection rules to a validated patrol plan and a clear next stop on a phone.
- Stage reached
- Working software prototype
- Sector
- Security operations
- Organisation
- ROGR
My contribution
We built the Python scheduling engine, planning API, manager workspace and driver PWA, connecting route feasibility with the on-shift experience.
- Patrol scheduling around repeat visits, time windows, travel and breaks
- CSV imports, workload checks and multi-guard route comparison
- Guard assignment and a browser-based handoff to the driver app
- Mobile route maps, shift schedules and inspection progress
The result
A working software prototype covering patrol planning, route review and the mobile driver workflow. Managers can identify overloaded shifts, compare guard routes and open an assigned route in the driver app.
Engagement
Scheduling engine and web app development
The problem
Security patrols revisit the same sites throughout a shift. Each inspection must fit its time window and repeat interval, with enough time left for driving, inspection work and breaks. A short route alone does not make a workable patrol.
How it was approached
- Model inspection counts, repeat intervals, timing windows, shift boundaries and planned downtime as explicit rules.
- Screen shift capacity before route search and compare one-guard and multi-guard plans.
- Validate generated visits and travel legs independently, with reasons when requirements cannot be met.
- Carry the selected plan into a mobile interface for the next stop, shift sequence and inspection states.
How far up the stack the work reached
The prototype carries a plan from manager review into the driver app using local browser storage.
Patrol requirements
Sites, shifts and inspection obligations.
Planning API
Validated CSV and JSON inputs for the scheduling engine.
Scheduling
Capacity screening, route search and independent validation.
Manager workspace
Route comparison, schedules and guard assignment.
Driver app
Route map, next stop, shift sequence and inspection progress.
What was built
Scheduling engine
Build patrols around the rules of the shift.
- Repeated inspections, overnight windows and multiple rules per site
- Travel time, inspection duration, breaks and shift limits
- Independent checks with feasible, infeasible or search-exhausted results
Manager workspace
Review the workload before assigning a route.
- CSV dossier upload, shift controls and a planning API
- Single-guard capacity checks and multi-guard route comparison
- Visit schedules, travel totals and guard assignment
Mobile driver app
Keep the next action clear during a patrol.
- Map and shift views with scheduled repeat visits
- Travel, arrival, inspection countdown and completion states
- Installable PWA with day/night themes and an offline fallback screen
Routing integration
Keep road travel connected to scheduling.
- Google Routes adapter for travel matrices and road geometry
- MapLibre maps with planned stops and route legs
- Recorded travel data for repeatable, network-free solver checks
What changed
Feasibility first
Explain why a patrol fits
Plans include timing and rule evidence. Workloads that cannot fit a shift are surfaced rather than silently dropping required inspections.
Manager to driver
One connected prototype workflow
Managers review routes and assign guards; the driver view loads the selected assignment from the same browser's saved plan.
Desktop and mobile
Interfaces built for each role
The planning workspace exposes route options and schedules, while the phone interface focuses on the current stop and inspection sequence.
Technical stack
Python
TypeScript
Next.js
Flask
MapLibre
Google Routes API
IndexedDB
Capabilities applied
Web app development
Scheduling optimisation
API integration
Mobile PWA
From the project
Next project
Equiomics
Pitch materials, wearable product concepts and an interactive monitoring dashboard prototype.



