Commit Graph

58 Commits

Author SHA1 Message Date
34bf7989f7 dispatch map, plan vs actual, and a fleet page
Three of the features the old console had and ours did not, built on what
the data can actually support rather than on what the column names imply.

Two findings changed the shape of the work:

`riderlogs` is not a GPS trail. Every ping a rider sends carries the SAME
coordinate — one rider's 2,404 pings on 14 August all read 11.052998,
76.929958, and the same holds on every day and region checked. Distance,
speed and "time moving" cannot come from it. The Fleet page therefore
reports presence only: who was online and for how long, inferred from the
gaps between check-ins, because `login`, `logout` and `workhours` are empty
on all 320,132 August rows. It says out loud that it cannot tell a rider
parked all day from one who crossed the city.

The delivery ladder is not the order its columns are in. `starttime` is
later than `arrivaltime` on 316 of 316 rows, which looks corrupt and is not:
`starttime` is per-DROP, stamped when the rider sets off for that address
having finished the last one. Read as assign -> arrive -> pickup -> start ->
deliver, every duration is positive. On tenant 916 that shows the bottleneck
is not the riding: a median 69.5 minutes passes between handing an order to
a rider and that rider reaching the shop, against 0.6 minutes at the counter.

- Map tab on dispatch, fed by `deliveries.riderslat/lon` — the only rider
  positions that move (353 distinct across 461 rows). Tenant-scoped, so a
  shop sees its own rounds. The line joins stops in worked order and says
  it is not a route.
- Plan vs actual tab: promised against delivered, and a step breakdown of
  where the hours go. `actualkms` is excluded — it equals the planned `kms`
  to the decimal on every delivered row, so it is a copy, not a measurement.
- Fleet page in the platform console: a presence gantt and a map of where
  each rider is registered.
- `ridername` holds a delivery status on more rows than it holds a name for
  two riders in five, so names are resolved by excluding the status
  vocabulary first.
- leaflet, wrapped directly rather than via react-leaflet, lazy-loaded so
  only the pages with a map pay for it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JYEsb8PNZ19G9R8gUjTU7n
2026-09-09 17:02:21 +05:30
b760c1a078 rider partner page 2026-09-09 15:43:23 +05:30
32c612a10d qr code 2026-09-09 11:19:05 +05:30
a94c23c20e profile name change 2026-09-08 19:20:42 +05:30
035ceb44a7 profile page 2026-09-08 19:01:40 +05:30
33c4542ddf guide 2026-09-08 17:03:17 +05:30
59828811f9 timing 2026-09-08 15:40:48 +05:30
024fc4adfd bulk release 2026-09-08 12:59:17 +05:30
12269deeda category id 2026-09-08 12:17:56 +05:30
d54fadef20 category changes 2026-09-08 12:03:23 +05:30
1a37949bbe category according to the agent 2026-09-08 10:36:14 +05:30
fdecfe6cc1 console 2026-09-07 18:05:54 +05:30
56f183f6f6 console category 2026-09-07 17:50:57 +05:30
954dfb8c00 category 2026-09-07 17:27:27 +05:30
c31696ce41 enhancement 2026-09-07 16:46:47 +05:30
05ac76f5f0 drawer and upload 2026-09-07 13:02:35 +05:30
8defbd418f pagenation 2026-09-07 11:00:44 +05:30
d3785cc303 dispatch fix 2026-09-05 15:38:40 +05:30
5006a4f0d4 dispatch page 2026-09-05 15:01:16 +05:30
37b0833328 health score 2026-09-04 17:31:57 +05:30
9f1593ff87 health score in drawer 2026-09-04 17:20:24 +05:30
b8150eb158 health score 2026-09-04 16:36:50 +05:30
e1a16377ea rider creation 2026-09-04 16:03:46 +05:30
416c50755b assign option 2026-09-04 11:31:07 +05:30
743aa93e20 deliveries 2026-09-03 19:13:04 +05:30
25073659d8 terminal redesign 2026-09-03 16:47:04 +05:30
a8fc4bee69 cards 2026-09-03 16:22:48 +05:30
bbe313ba48 cards removed 2026-09-03 15:45:15 +05:30
5345809951 price fix for app 2026-09-03 15:08:22 +05:30
350eb8f29c confirm received 2026-09-03 14:42:56 +05:30
e1bb0a5307 redesign console page 2026-09-03 12:31:07 +05:30
d39956a2f1 ask again 2026-09-03 11:17:31 +05:30
aad72cfe42 bulk request 2026-09-02 16:49:47 +05:30
d22b79e109 tenant profile 2026-09-02 12:29:17 +05:30
52be0e30ac login changes 2026-09-02 11:46:41 +05:30
7df8a49e5f setup onboarding page 2026-09-02 11:26:00 +05:30
b72bbd2f12 changes 2026-09-02 10:48:47 +05:30
98712493c4 role id solved 2026-09-01 13:43:51 +05:30
599508bc20 login changes 2026-09-01 13:22:02 +05:30
9b24d9ec09 changes 2026-09-01 13:05:37 +05:30
22c9f45b44 skip button 2026-09-01 12:54:40 +05:30
fda463f123 guidence fix 2026-09-01 12:32:19 +05:30
a8e0dc069f guidence 2026-09-01 12:00:46 +05:30
fe78c54eeb filters 2026-08-31 16:40:07 +05:30
5304d9aeb6 updated on shelfon store catalogue 2026-08-31 16:26:58 +05:30
55ed13c284 fix on shelf 2026-08-31 15:50:59 +05:30
b4e77fd6ea updated on shelf 2026-08-31 14:58:55 +05:30
bd133e7cc6 agent conformation 2026-08-31 12:32:09 +05:30
7e3571f90e changes 2026-08-29 16:45:04 +05:30
f4a2962981 product name alone made required 2026-08-29 12:46:14 +05:30