Skip to content
Yash WaghmarePortfolio, 2026
YASH
ready? scroll gently.
loading the fun…0%
Back to work

Case 01 of 03

VELORA

Fleet routing that doesn’t make you wait.

Dispatchtoday’s routessolving live
VehicleRouteStopsStatusAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

16 stops in, 4 routes out — while the dashboard stays responsive.

Role
Full-stack developer
When
2026
Built with
Next.js · FastAPI · Celery · Redis · VROOM · OSRM · PostgreSQL
Result
Bronze at Kriti
The problem

“Delivery fleets juggle dozens of stops, vehicle capacities and time windows. Planning by hand is slow — and most solvers freeze the screen while they think.”

How it works

Solving moved offthe request path.

  1. 1

    Next.js UI

    Zustand + Google Maps

  2. 2

    FastAPI

    Accepts the job

  3. 3

    Redis

    Queue + state

  4. 4

    Celery workers

    Run jobs concurrently

  5. 5

    VROOM + OSRM

    Solve on real roads

  6. 6

    PostgreSQL

    Persist the routes

The hard parts

01

Stay responsive

Keep the API snappy while long optimisation runs grind in the background.

02

Real constraints

Model capacities and time windows without slowing the solve to a crawl.

03

Live status

Stream progress to the dashboard without hammering the server.

What came out of it

Bronze

at Kriti ’26, IIT Guwahati’s inter-hostel tech competition

Async

solve jobs run concurrently — the UI stays responsive under load

11

tools wired together, from Next.js to PostgreSQL

Life of a request
Velora · job ticket01

Queued

FastAPI

Takes the job, hands back a ticket in milliseconds.

IN LINE

Velora · job ticket02

Solving

Celery + VROOM

A worker picks it up and crunches routes on OSRM roads.

WORKING

Velora · job ticket03

Solved

PostgreSQL → UI

Routes saved; the dashboard’s polling finds them and draws.

DONE ✓

every request becomes a ticket — the UI just watches it move

View the code Read the notes

Next up

WANDERLUST

Airbnb-style travel listings — Node, Express, MongoDB.