Vanlynk | Route Optimization
A planning workspace inside "Vanlynk" field service platform's dispatch board. It lets dispatchers turn a list of jobs into an ordered driving route for a technician or a crew
Overview
Route Optimization is a planning workspace inside Vanlynk field service platform’s dispatch board. It lets dispatchers turn a list of jobs (“work orders”) into an ordered driving route for a technician or a crew, draw it on a live map, and with one toggle let the system reorder the stops automatically to drive fewer miles.
In plain terms: it answers “which tech goes where, in what order, today” while keeping distance and fuel cost down.

The Problem
Dispatchers already had every job sitting in the system, but no way to string those jobs into a sensible route. Sequencing was done by hand and by gut, which meant technicians covered their service area inefficiently and burned fuel. The business needed two things: a tool to assemble a route from existing work orders, and the ability to optimize that route to cut fuel costs without bolting on a separate third-party logistics product or forcing dispatchers out of the board they already lived in.

Technical Approach
The module is built as a three-panel workspace: Routes list , Build/Details panel , Google Map
Coordinated by a shell component that swaps panels based on a single mode flag (LIST, CREATE, EDIT, VIEW). The four panels never talk to each other directly. Instead they share a singleton service exposing RxJS BehaviorSubject streams that any panel can publish to or subscribe from. This mediator pattern keeps the panels decoupled — selecting a route in the list pushes it onto a stream, and the map and detail panels react independently.
Routes can be built two ways: manually, by dragging stops into order (Angular CDK drag-and-drop), or AI-optimized, where the selected jobs and a chosen endpoint are sent to the backend that returns the optimized ordering. Mapping leans on Google Maps via @agm/core, with the Directions API drawing each stop and the Geocoder reverse-resolving a technician’s GPS coordinates into a readable address.
Each route path, fetch its detailed path from the Directions API, then test the tech’s last-known GPS point against that path with geometry.poly.isLocationOnEdge and a distance tolerance. paths already traveled render solid orange, the upcoming path renders dashed green. A guard ensures a location only counts as “live” if its timestamp is from the same day as the route.
Other Projects
Vanlynk | Staff Simplification
A ground up rebuild of the staff management module for vanlynk - field service platform
Vanlynk | Work order Simplification
A ground up rebuild of the work order module for vanlynk - field service platform
Vanlynk | Running Costs
A financial command center for an individual job. As a technician works, every cost that accrues against the work order materials