Open-Source Field Service Scheduling Platform
Budget: $250 – $750 USD
I’m building a full-stack, open-source platform that can plan and re-plan field service jobs on the fly. The scheduling core will sit on OptaPlanner (or an equivalent constraint solver) while the routing layer should plug into a solution such as Grasshopper and pull live distance data from a Distance Matrix service.
Dynamic scheduling is the top priority: as jobs, technicians, or traffic conditions change, the engine must recalculate in real time and push the new plan straight to the user interface. I also need the same engine to switch modes for intra-day, current-day, and future-day optimisation without code changes—just a configuration toggle.
For the operations team, manual intervention is essential. A web-based Gantt chart should let them drag and drop tasks, override assignments, and instantly trigger a fresh optimisation run that respects their changes. All this has to happen with sub-second feedback so the board never feels “stale”.
Because this is greenfield, the stack is flexible provided we keep it open source end-to-end. A clean REST (or GraphQL) API, containerised deployment, and clear separation between optimiser, routing engine, and UI will make future scaling easier.
Deliverables
• Scheduler service powered by OptaPlanner (or similar), supporting dynamic, intra-day, current-day, and future-day modes
• Routing microservice tied into a Distance Matrix API and capable of swapping providers
• Real-time event pipeline so new data triggers instant re-optimisation
• Gantt-based web UI with drag-and-drop overrides and live status updates
• Source code, Docker files, and documentation explaining setup, configuration, and extension points
Acceptance Criteria
1. Adding, cancelling, or editing a job is reflected on the Gantt within two seconds.
2. Manual drag-and-drop updates survive the next optimisation run unless the user explicitly releases the override.
3. Route selection honours the Distance Matrix and produces travel times within ±5 % of the matrix’s estimate.
4. Mode switching (dynamic vs. future-day) is accomplished through a settings endpoint—no redeploy required.
5. All components build and run via a one-command Docker compose script.
If you have hands-on experience with OptaPlanner, constraint solving, or GIS routing engines and can demonstrate a past implementation, let’s talk.
Dynamic scheduling is the top priority: as jobs, technicians, or traffic conditions change, the engine must recalculate in real time and push the new plan straight to the user interface. I also need the same engine to switch modes for intra-day, current-day, and future-day optimisation without code changes—just a configuration toggle.
For the operations team, manual intervention is essential. A web-based Gantt chart should let them drag and drop tasks, override assignments, and instantly trigger a fresh optimisation run that respects their changes. All this has to happen with sub-second feedback so the board never feels “stale”.
Because this is greenfield, the stack is flexible provided we keep it open source end-to-end. A clean REST (or GraphQL) API, containerised deployment, and clear separation between optimiser, routing engine, and UI will make future scaling easier.
Deliverables
• Scheduler service powered by OptaPlanner (or similar), supporting dynamic, intra-day, current-day, and future-day modes
• Routing microservice tied into a Distance Matrix API and capable of swapping providers
• Real-time event pipeline so new data triggers instant re-optimisation
• Gantt-based web UI with drag-and-drop overrides and live status updates
• Source code, Docker files, and documentation explaining setup, configuration, and extension points
Acceptance Criteria
1. Adding, cancelling, or editing a job is reflected on the Gantt within two seconds.
2. Manual drag-and-drop updates survive the next optimisation run unless the user explicitly releases the override.
3. Route selection honours the Distance Matrix and produces travel times within ±5 % of the matrix’s estimate.
4. Mode switching (dynamic vs. future-day) is accomplished through a settings endpoint—no redeploy required.
5. All components build and run via a one-command Docker compose script.
If you have hands-on experience with OptaPlanner, constraint solving, or GIS routing engines and can demonstrate a past implementation, let’s talk.
Related categories:
PHP
JavaScript
Software Architecture
HTML
Docker
Full Stack Development
GraphQL
REST API