Web application

JobOps

Who works where, and when. A scheduling application for businesses that send subcontractors out to client sites.

Type
Multi-tenant web app
Built with
Node.js, vanilla JS, Leaflet
Features
Maps, calendars, live location
Live at
jobops.bcltl.com

The brief

Commercial cleaning runs on a moving schedule: dozens of client sites, each with its own scope of work and its own days, worked by subcontractors who need to know exactly where to be and what to do there. That usually lives in a spreadsheet and a group text.

What we built

JobOps makes every site a location that carries its client, scope of work, estimate, quote and dates of work, with a crew assigned per date. Recurring tasks are counted from their own start date and land on the first date of work on or after each time they fall due, so a weekly task still gets done when the job runs Tuesdays and Thursdays.

Owners see a month calendar, a list and a map of every site with one-tap directions. Subcontractors see only the dates they’re on, with that day’s address, notes and tasks, and never the client’s pricing or contacts.

Under the hood

  • A single Node process serves the API, the app and the private calendar subscription feeds.
  • Addresses become map pins through OpenStreetMap, with lookups rate-limited to the service’s terms.
  • Live positions are held in memory only: no history, nothing written to disk, and clocking out forgets the last one.
  • An end-to-end smoke test drives the whole API against a throwaway data folder.
Next project Maison bwian