MumbaiLocal-QR is a MERN stack-based web application that provides QR codes for multiple Mumbai local train stations, allowing users to book tickets conveniently at or near the station. It also includes a public submission system where anonymous users can contribute missing QR codes, which are then reviewed and approved via an admin dashboard.
- Frontend (React.js, Vite, Tailwind CSS): MumbaiLocal-QR Frontend
- Backend (Node.js, Express.js, MongoDB): MumbaiLocal-QR Backend
✅ View QR codes of multiple Mumbai local train stations.
✅ Submit missing QR codes anonymously through a public form.
✅ Access an admin dashboard at /admin
.
✅ Review & approve QR codes submitted by the public.
✅ Submit and manage QR codes directly.
- Frontend: React.js, Tailwind CSS, Vite
- Backend: Node.js, Express.js
- Database: MongoDB (MongoDB Atlas)
- Authentication: JWT (for admin access)
- Storage: Cloudinary (for QR code images)
- Deployment: Vercel (Frontend & Backend)
- Node.js installed
- MongoDB (Local or Cloud)
git clone https://github.com/MoinMN/MumbaiLocal-QR.git
cd MumbaiLocal-QR
cd client
npm install
cd ../server
npm install
VITE_BACKEND_URL="your_backend_url"
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
FRONTEND_URL=your_frontend_url
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
cd server
npm start
cd client
npm run dev
🖥 Open http://localhost:5173
in your browser.
GET /qr/get
→ Fetch all available QR codesPOST /qr/post
→ Submit a new QR code (Anonymous)
POST /auth/login
→ Admin loginGET /qr/pending-qr-admin
→ Fetch pending QR codesPUT /qr/put-approve
→ Approve a QR codeDELETE /qr/delete-qr-admin
→ Delete a QR codePOST /qr/post-qr-admin
→ Add a new QR code
cd client
vercel deploy --prod
👉 Live: MumbaiLocal-QR Frontend
cd server
vercel deploy --prod
👉 Live: MumbaiLocal-QR Backend
- Fork the repo
- Create a new branch (
feature/new-feature
) - Commit your changes and push
- Submit a Pull Request