1// Civic Ledger.md
2// ---------------------------
3
4# Civic Ledger
5
6Evidence-first civic accountability platform for Hyderabad — connecting ground-reality reports with official promises, budgets, and tenders.
7
8**TYPE:** Web Application
9**STATUS:** In Development
10**LIVE:** https://civic-ledger-hyderbad.vercel.app
11**DEV:** http://localhost:4300
12**WORKSPACE:** ~/GitHub/civic-ledger
13**GITHUB:** nikanjuri/civic-ledger (private)
14
15---
16
17## FEATURES
18
19- Dual ledger — citizen ground reports on one side, official promises and budgets on the other
20- Source-backed manifesto tracker with saved source-check runs
21- Tracker-first public dashboard with static public detail routes
22- Automated-first ingestion design — source collectors parse official records into candidates
23- WhatsApp and web submission paths for ground evidence
24- Honest empty states — no fabricated data before real intake exists
25
26---
27
28## TECHNOLOGIES
29
30- Next.js 16 (App Router)
31- TypeScript
32- Supabase (Postgres)
33- Vitest
34- Vercel
35
36---
37
38## NOTES
39
40Civic Ledger pairs two ledgers: a Ground Ledger of citizen-reported civic issues with evidence, and a Project Ledger of source-backed official promises, budgets, tenders, work orders, and completion claims. The design goal is a platform that is calm, evidence-first, and difficult to dismiss.
41
42### Evidence over outrage
43
44Every promise in the manifesto tracker links back to an official source, and every source-check run is saved so claims stay verifiable over time. Ground reports connect to public commitments without overclaiming what citizen evidence proves.
45
46### Automated-first ingestion
47
48The production model treats admins as reviewers, not data-entry clerks: source collectors and parsers create promise and project candidates from official records, users submit ground evidence via web and WhatsApp, and admins only review low-confidence, sensitive, or disputed records.
49
50### Deliberately honest
51
52Ground issue reports and local project records start at zero until real user intake and automated ingestion exist — the dashboard shows honest empty states rather than seeded fake data.