Independent hackathon prototype. Not affiliated with, endorsed by, or connected to the Government of India. All data shown is synthetic. What's real →
Text size

How it is wired

Every screen in this prototype, and what leads to what

This diagram is not drawn. It is read out of the source each time the site is built, so it cannot quietly stop being true.

19

screens

7

endpoints

58

connections found

87

files read

Built 5 Sept 2026, 10:08 am by reading every file under app/, components/ and lib/, resolving each path it finds against the routes that actually exist on disk.

The graph

Columns are distance from the front page. The header and footer are on every screen, so their links are left out of this picture — counting them would make everything one step from everything and the diagram would say nothing. They are listed underneath instead.

Sends you thereLinks thereCalls itNames it

Not on the diagram: 7 with no path from the front page

Reached through the header or footer, opened directly by URL, or called by a component that sits in the layout rather than in a screen. Drawing them as a column of boxes with no lines would only make the diagram harder to read, so they are named here instead — and the connections that do run into them are in the list below rather than in the picture.

  • /api/auth
  • /api/cases
  • /api/health
  • /demo
  • /map
  • /offline
  • /presentation
Every connection, as a list (58)
  • /

    • links there /about — written in the screen itself
    • links there /check — written in the screen itself
    • links there /compare — written in the screen itself
    • links there /patterns — written in the screen itself
    • links there /radar — written in the screen itself
    • links there /report — written in the screen itself
    • links there /track — written in the screen itself
  • /check

    • links there /check/report — written in the screen itself
    • links there /patterns — written in the screen itself
    • links there /report — written in the screen itself
  • /check/report

    • sends you there / — written in the screen itself
    • links there /check — written in the screen itself
    • sends you there /check — written in the screen itself
    • links there /report — written in the screen itself
  • /demo

    • links there /about — via lib/demo.ts
    • calls it /api/cases — written in the screen itself
    • calls it /api/health — written in the screen itself
    • calls it /api/radar — written in the screen itself
    • calls it /api/triage — written in the screen itself
    • links there /check — via lib/demo.ts
    • links there /compare — via lib/demo.ts
    • links there /map — via lib/demo.ts
    • links there /offline — via lib/demo.ts
    • links there /patterns — via lib/demo.ts
    • links there /radar — via lib/demo.ts
    • links there /report — via lib/demo.ts
    • links there /report/details — via lib/demo.ts
    • links there /report/review — via lib/demo.ts
    • links there /report/urgent — via lib/demo.ts
    • links there /track/[ack] — via lib/demo.ts
    • links there /verify — via lib/demo.ts
  • /map

    • links there /about — written in the screen itself
    • names it /report/review — written in the screen itself
    • names it /track/[ack] — written in the screen itself
  • /offline

    • links there /check — written in the screen itself
    • links there /report — written in the screen itself
  • /patterns

    • links there /check — written in the screen itself
  • /radar

    • calls it /api/radar — written in the screen itself
    • links there /patterns — written in the screen itself
    • links there /report — written in the screen itself
  • /report

    • calls it /api/triage — written in the screen itself
    • names it /report/urgent — written in the screen itself
  • /report/details

    • sends you there /report — written in the screen itself
    • sends you there /report/review — written in the screen itself
  • /report/review

    • sends you there /report — written in the screen itself
    • sends you there /report/details — written in the screen itself
    • sends you there /track/[ack] — written in the screen itself
  • /report/urgent

    • sends you there /report/details — written in the screen itself
  • /signin

    • names it /track — written in the screen itself
  • /track

    • links there /signin — written in the screen itself
    • links there /track/[ack] — written in the screen itself
    • sends you there /track/[ack] — written in the screen itself
  • /track/[ack]

    • links there /about — written in the screen itself
    • calls it /api/receipt — via components/case-receipt.tsx
    • links there /patterns — via components/case-board.tsx
    • links there /track — written in the screen itself
    • links there /verify — via components/case-receipt.tsx
  • /verify

    • calls it /api/receipt/key — written in the screen itself

Sends you there: A router.push or a redirect: the screen moves you on its own.Links there: An anchor or a Link with a literal path — you choose to follow it.Calls it: A request to an internal endpoint. No screen changes.Names it: A module this screen imports contains that route as a string. Strong evidence, not proof.

The two journeys that matter

Filing a complaint

  1. /
  2. /report
  3. /report/urgent
  4. /report/details
  5. /report/review

4 steps from the front page, by the shortest route the scan can see.

Coming back to a complaint

  1. /
  2. /track
  3. /track/[ack]

2 steps from the front page, by the shortest route the scan can see.

On every screen

The header and footer put these within one tap of everywhere, which is why they are not lines on the diagram.

  • /
  • /about
  • /api/auth
  • /api/cases
  • /api/health
  • /check
  • /compare
  • /map
  • /offline
  • /patterns
  • /radar
  • /report
  • /report/details
  • /report/urgent
  • /signin
  • /track
  • /verify

What the scan flags

Links to nowhere

None. Every path written in this codebase resolves to a route that exists.

No contextual way in

  • /api/auth
  • /demo
  • /presentation

Reachable from the header or footer, or not at all. For a demo control room that is intentional; for a screen in a flow it is a bug.

No path from the front page

  • /api/auth
  • /api/cases
  • /api/health
  • /demo
  • /map
  • /offline
  • /presentation

Counting only links written into screens, not the header and footer.

What this map cannot see

It reads what is written. A destination assembled at runtime from pieces, a redirect issued by the service worker, a window.location assignment, or a screen reached only through the back button leaves nothing in the source for it to find.

Where a pattern is beyond it the result is a missing line, never a guessed one — so this understates the product and never overstates it. The dashed grey lines are the weakest evidence on the page: a module the screen imports contains that route as a string, which is how the filing flow decides where to go next, but a module could name a route it never actually returns.

What this prototype is, and is not