Student · Solan, HP

A room near campus. Honest rent. Reviews from people who actually lived here.

You arrive in a city you do not know. The hostel said no. WhatsApp groups quote three different prices. The broker disappears after the deposit.

Find · Visit · Pay · Verified.

Owner · Mandi, HP

One listing. Real students. One inbox. No middleman taking a cut of the rent.

Publish a room with six photos in two minutes. Accept or decline visit requests in one click. Mark a renter as current and watch their next review carry the verified badge.

Publish · Vet · Onboard · Track.

Work / Bharat-First / GharSetu

अपना कमरा, अपने शहर में.

200KBPage weight on a 2G phone
10Live demo listings, six cities
9Beckn ONDC actions implemented
AAAWCAG 2.2 from the first commit
₹0Idle cost on Cloud Run

Act I · The City Is Cruel

A small-town student lands in a big city.
Then the broker arrives.

Day one to month one. The pattern is the same in Solan, Mandi, Sirmaur, Shimla, Chandigarh and beyond.
Where students search todayWhat it actually delivers
Campus WhatsApp groupsThe same room is offered at three different rents to three different students within the same week. No accountability after the deposit.
Paper notices on hostel wallsOut of date by the time the student copies down the number. Owner has already rented the room twice.
Local property brokersOne month rent as commission. Vague visits. Listings disappear when asked for cleanliness, gender preference or rules.
National rental portalsBuilt for metros. Tier-2 and tier-3 cities are blank. The student near a Solan or Mandi campus is invisible to the platform.

Act II · The Single Idea

A review is noise.
A review from someone who lived in the room is signal.

GharSetu's verified-renter badge is not an honour system. It is a database fact. Every review tells the next student which kind it is.

Did this student rent the room?

decided by
  • Owner marked them as a current renter from the dashboard, verified
  • Or they paid rent in-platform via the simulated Razorpay webhook with HMAC-SHA256 verification, verified
  • Otherwise the review is stamped outsider so future students can weigh the signal

The badge is the only non-obvious thing on the page. Everything else is a consequence of taking it seriously.

Act III · The Surface

Every screen is a route.
Every route is server-rendered HTML.

No SPA. No client framework on the critical path. A Fastify 5 server on Node 22 LTS sends a 200 KB page that paints on a 2G phone in under three seconds.

MethodPathPurpose
GET/searchFilterable list and Leaflet map view, OpenStreetMap tiles, distance from landmark sort.
GET/listings/:idFull detail page with up to six WebP photos, map, rules, and reviews tagged verified or outsider.
POST/listingsOwner publishes. Sharp resizes uploads to WebP at 1600x1200.
POST/bookingsStudent requests a visit or a reservation. Owner accepts or declines from the dashboard.
POST/pay/webhookRazorpay simulated, HMAC-SHA256 with timing-safe equality. Captures payment and creates the renter record.
POST/ondc/v1/{search,select,init,confirm,…}Nine Beckn protocol actions plus a registry-style /lookup. Async on-callbacks with full quotes and order state.
GET/adminSuper-admin SIEM dashboard. Audit log on every mutation, queryable in real time over Server-Sent Events.

Act IV · The Stack

One container.
One process. Zero managed services.

No Redis. No queue. No managed database for the MLP. Cloud Run scales to zero, so an idle deployment costs literally zero rupees. The schema in src/db/schema.sql is portable Postgres-compatible SQL when it needs to grow.

  • Node 22 LTS
  • TypeScript 5.7
  • Fastify 5
  • EJS server-rendered
  • SQLite ephemeral
  • zod validation
  • pino JSON logs
  • JWT cookie + CSRF
  • Sharp · WebP 1600x1200
  • Leaflet · OpenStreetMap
  • Beckn protocol
  • DigiLocker simulated · OAuth + PKCE
  • Razorpay simulated · HMAC-SHA256
  • Cloud Run · asia-east1 · 512 MiB
  • PWA + service worker
  • EN + HI bilingual

Act V · Proof

Live. Auditable. Self-seeding.

Production deployment

Custom domain plus the raw Cloud Run service URL. min-instances=0, so the first request after a quiet window pays one cold start of around five seconds. After that, sub-200ms.

https://gharsetu.dmj.one https://gharsetu-azjqpkmlpa-de.a.run.app

Inline pitch and capstone report

A keyboard-navigable 16:9 slide deck and the full capstone report live as routes on the same domain. Originals downloadable as .pptx and .docx.

/pitch · /report · /pitch.pptx · /report.docx

Auto-seeded demo

First boot creates a fresh SQLite DB at /tmp/gharsetu.db with six users, ten listings across Solan, Mandi, Shimla, Chandigarh, Delhi and Noida, sample bookings, payments, renter records and feedback. Reseeds when the instance scales to zero and back.

Super-admin SIEM

Every mutation writes an audit row with actor, action, IP, user agent and a sanitised payload. /admin streams the audit feed live over SSE for super-admin investigation.

Built by Akshit Thakur · mentored by Divya Mohan

GharSetu is Akshit's B.Tech capstone at Shoolini University, Solan. The verified-renter mechanism, the route surface, the Beckn endpoints and the admin SIEM were built by Akshit. Divya mentored the architecture, the WCAG 2.2 AAA bar, and the Cloud Run path. The ten-listing demo dataset is seeded from the actual hill-state cities the project is meant to serve.

If a hill-state student can find an honest room, so can yours.

I mentor capstones into production-quality MLPs that ship on Cloud Run, comply with ONDC, and meet WCAG 2.2 AAA from line one. If your team is shipping for India outside the metros, this is the bar.