Explore available residential plots at The Greater Mansarovar — interactive site plan, 3D view and satellite map.
CommerceJavaScript · CSSGitHub @MeRajatOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
The Greater Mansarovar — Interactive Site Plan
Customers can browse freely. Prices, plot dimensions and the layout diagram unlock once they share a name and mobile number (no OTP). Each lead is linked to the plots that visitor opened, so the builder sees what each customer is interested in.
With no DATABASE_URL, the API uses an in-memory store (data resets on restart), so it runs with zero setup.Read the full README ↗Two apps on one Vercel project:
| URL | Who | What |
|---|---|---|
/ | Customers | Mobile-first site plan (2D plan, 3D model, satellite map), plot search & filters, plot details, enquiry |
/admin/ | Builder / owner | Password-protected leads dashboard: visitors, leads, conversion, most-viewed plots, lead pipeline, CSV export |
/buildings/ | Customers | Apartment / society building visualiser (see src/buildings/) |
Customers can browse freely. Prices, plot dimensions and the layout diagram unlock once they share a name and mobile number (no OTP). Each lead is linked to the plots that visitor opened, so the builder sees what each customer is interested in.
The dashboard has three tabs: Today, Stock and Customers.
/api/inventory every minute, so a plot put on hold in the dashboard turns yellow on the 2D plan, 3D model and map without a redeploy. Customers never see names or numbers, only the status.ANTHROPIC_API_KEY set the answer comes from Claude; without it a keyword search runs.?cp=Name, so every customer who comes through it is credited to that broker (first touch wins) and shows up as "via Name" in Customers and the Excel export.Plot, Status, Price (lakh), Note to update many plots at once.The Customers tab is a phone-first CRM in the spirit of Privyr, built for plots and flats:
VAPID_PUBLIC_KEY / VAPID_PRIVATE_KEY (npx web-push generate-vapid-keys) and VAPID_SUBJECT. Alerts fire for new website leads, Facebook / Instagram form leads, and WhatsApp customers who want to talk or booked a visit.The Ads tab connects marketing to the CRM:
fbclid is treated as Facebook)./api/webhooks/meta): every form submission becomes a lead card within seconds, tagged with the campaign / ad name. Needs META_VERIFY_TOKEN, META_PAGE_TOKEN (and optionally META_APP_SECRET for signature checks)./api/webhooks/whatsapp): customers who message the business number (including from Click-to-WhatsApp ads) get an instant reply in their language. The assistant quotes live stock, learns budget / size / facing, books a site-visit day (saved as the follow-up date) and hands over to the team when asked. Every chat shows on the customer's card with a reply box. Needs WA_VERIFY_TOKEN, WA_TOKEN, WA_PHONE_ID (optional WA_APP_SECRET). Without an AI key a scripted 4-step flow runs; without WhatsApp credentials replies are stored but not sent (sandbox).VITE_RERA_ID is set.npm test # API tests (in-memory store, no network)
Local AI without a key (disposable): set
AI_DEV_CLI=1in.envand the API routes AI calls through the installedclaudeCLI. Never active on Vercel.
npm install
npm run dev # http://localhost:5173 · admin: http://localhost:5173/admin/ (password: admin)
With no DATABASE_URL, the API uses an in-memory store (data resets on restart), so it runs with zero setup.
vercel.json (Vite build → dist, API routes from api/).DATABASE_URL to the project. Tables are created automatically on the first request.ADMIN_PASSWORD: required. The builder's dashboard password.SESSION_SECRET: optional, a long random string.VITE_BUILDER_PHONE / VITE_BUILDER_WHATSAPP: optional, e.g. 919876543210. Adds Call / WhatsApp buttons after an enquiry.VITE_RERA_ID: the project's RERA number, printed on shared stock messages.ANTHROPIC_API_KEY: optional. Turns on the AI assistant in the dashboard (ask about stock, morning note).index.html customer page shell
admin/index.html builder dashboard shell
src/shared/ plot data (plots_data.json) + derived geometry, zones, facing, pricing
src/customer/ customer app: plan.js (D3), view3d.js (three.js, lazy), mapview.js (Leaflet, lazy)
src/admin/ dashboard UI
api/index.js the one Vercel function (vercel.json rewrites /api/* to it); dispatches to server/router.js
server/ API handlers (one file per endpoint, same names as the URL)
track.js anonymous visits / plot views (+ broker tag ?cp=)
lead.js lead capture (name + mobile)
inventory.js public live stock (status + demand, no customer details)
admin/inventory.js stock: list, change status / price / hold, history, Excel upload
admin/ai.js assistant: ask about stock, morning note, ad copy (Claude, with plain fallbacks)
admin/marketing.js campaigns, ad spend, WhatsApp threads, sandbox chat, setup status
admin/insights.js drop-off funnel, speed to contact, lost reasons, no-shows, action items (+ AI coach note)
admin/activity.js log calls / WhatsApp / visits per lead (moves the pipeline)
admin/settings.js message templates, team, builder's name
admin/push.js phone alert subscriptions (Web Push)
webhooks/meta.js Facebook / Instagram lead ads → lead cards
webhooks/whatsapp.js WhatsApp Cloud API → AI assistant → lead cards
admin/session.js sign in / out (signed HttpOnly cookie)
admin/leads.js list + update lead status / notes
admin/stats.js KPIs, daily series, most-viewed plots
lib/ db (Neon or in-memory), units / marketing / crm repos, inventory rules, insights, ai, wa-bot, push, auth, http helpers
Edit src/shared/plots_data.json (status, price, area) and redeploy. Polygons are in plan units (1 unit = 1 ft).
Known data issue: plot numbers 180–183 appear twice (the four large plots on the south edge reuse them). They are shown as 180-2 … 183-2 until the correct numbers are filled in.