Live site · 2.0 concept page · Run it locally
M-Indicator 2.0 redesigns the website of m-Indicator, the Mumbai transit app, and it made the top 10 at the M-Indicator AI Hackathon. It's a static site of eight HTML pages, built with Vite and plain JavaScript and laid out for phones first. The home page covers locals, express trains, metro, mono rail, buses, auto and taxi fares, ferries, women's safety and emergency numbers. A separate 2.0 page shows what the app could predict next: how crowded each coach is, how likely a delay is, and how you'd get around a megablock.
Captured from a local build at 390 px wide. Left: the feature grid on the home page. Middle and right: the AI Commute Copilot and Smart Disruption Engine sections of the 2.0 page.
| Page | File | What it shows |
|---|---|---|
| Home | index.html |
Feature grid, Play Store reviews, origin story, a Leaflet map of 10 cities, app store links |
| M-Indicator 2.0 | upcoming.html |
The six 2.0 concepts below, each as a designed section |
| News | news.html |
Transit news cards with category filters, each linking to its Instagram post |
| ResumeDB | resumedb.html |
Job seeker profile form and a job application form |
| Advertising | ad.html |
Ad formats and how to place an order |
| Contact | contact.html |
Office address, support and ad contacts |
| Terms | terms.html |
Terms of use and privacy policy |
| 404 | 404.html |
Not-found page |
upcoming.html is a designed walkthrough. The answers, crowd levels and reroutes on it are fixed sample data. Nothing on it is a live prediction.
- AI Commute Copilot. You type a plain question, such as "I need to reach Andheri by 9:15 but avoid heavy crowd", and it suggests a train with its delay risk and expected crowd.
- Smart Coach & Crowd Intelligence. Each coach of a 12-car local gets a crowd level, and the page points you to the coach nearest the stairs or bridge. The animation at the top of this README redraws that mockup.
- Smart Disruption Engine. During a megablock it finds another route with Dijkstra's algorithm and shows the time it costs. In the sample the Matunga to Mulund fast line is blocked, so you board a slow at Dadar (20 min penalty) and change at Kurla.
- Women Safety Mode 2.0 & Guardian. Panic mode sends the train number, coach number, live location and audio. Family get a message when you board and when you arrive, and Find My Friend shares your live status so you can meet someone in a crowd.
- Habit Learning & Tourist Mode. It learns your usual route and warns you about rain or a block on it. Visitors get fare checks, for example about ₹140 by auto from Colaba to Dadar.
- Mumbai Wrapped 2025. Story slides recap your year on the local: distance, hours, and CO₂ saved compared with driving.
Needs Node.js 20.19+ or 22.12+ (Vite 7).
git clone https://github.com/https-shubhamsahu/M-indicator-2.0.git
cd M-indicator-2.0
npm install
npm run devThen open http://localhost:5173/M-indicator-2.0/. vite.config.js sets the base path to /M-indicator-2.0/, so you'll find the pages under that path in dev too.
npm run build # writes dist/
npm run preview # serves dist/ at http://localhost:4173/M-indicator-2.0/Every push to main runs .github/workflows/deploy.yml. It sets up Node 20, runs npm install and npm run build, and publishes dist/ to GitHub Pages at shubham-sahu.me/M-indicator-2.0. You can also start it by hand from the Actions tab.
vercel.json is still in the repo with short routes such as /news and /upcoming. Those routes don't apply on GitHub Pages, and a Vercel deploy at the domain root would also need a different base path in vite.config.js.
- There's no backend. The ResumeDB and job application forms show a success message in the browser but don't send anything.
- The city map asks CARTO for basemap tiles without an API key, so you'll see CARTO's "API key required" notice under the markers.
- Everything on the 2.0 page is sample data.
reviews.jsonholds 15 Play Store reviews, but no page loads it. The home page reviews are written straight into the HTML.
M-indicator-2.0/
├── index.html # home
├── upcoming.html # M-Indicator 2.0 concept
├── news.html
├── resumedb.html
├── ad.html
├── contact.html
├── terms.html
├── 404.html
├── src/ # main.js (intro overlay, scroll reveals, counters) and style.css
├── public/ # images, logos, intro video
├── reviews.json # Play Store review data, not loaded by any page
├── vite.config.js # base path and the 8 page inputs
├── vercel.json
├── .github/workflows/deploy.yml
├── assets/readme/ # README images
└── scripts/build_readme_assets.py # rebuilds assets/readme/
m-Indicator is Mobond's app. The logo, founder photo, press logos, app stats and contact details you'll see on these pages are Mobond's. They're there because this is a redesign of their site. Questions about this repo: shubhamsahu@nosus.foo.
Issues and pull requests are welcome. If you're looking for a place to start, try the header and footer that every page repeats, image sizes in public/, and accessibility.
There's no license file in this repository yet.
