Campus food rating and review app for college eateries.
- Client: React + Vite + React Router
- Server: Node.js + Express + MongoDB (Mongoose) + Redis (OTP)
Prereqs: Node.js 18+, MongoDB, Redis
cd servercp .env.example .envand set valuesnpm installnpm run dev
cd servernpm run seed
cd clientcp .env.example .envnpm installnpm run dev
POST /auth/request-otp returns devOtp in non-production to mock SMS.
POST /auth/request-otpPOST /auth/verify-otpPOST /auth/logoutGET /collegesGET /outlets?collegeId=...GET /outlets/:idGET /outlets/:id/menuGET /outlets/:id/reviewsPOST /reviewsGET /users/meGET /menu-items/:idGET /menu-items/:id/reviews
Uploads are stored locally in server/uploads/reviews and served from /uploads.
- OTP is mocked in development.
- Local file storage is used for photos and videos.
- One college is seeded first, but the schema supports more.
- Auth uses Redis-backed server sessions with an httpOnly cookie; client uses Vite proxy for same-site cookies.