A full-stack hostel meal and membership management platform with Stripe integration, admin control panel, premium user experience, and a modern UI.
- Email:
ratulroy@gmail.com - Password:
ASDf123@
✅ For demo and testing only. Use responsibly.
- Frontend: hostel-management-by-ratul.web.app
- Backend API: hostel-management-server-nine.vercel.app
🔑 Authentication & Authorization
- Firebase Auth + Secure JWT integration
- Role-based dashboard navigation for
adminanduser
🍛 Meal Management
- Add/update/delete categorized meals: Breakfast, Lunch, Dinner
- Meal detail pages with description, ingredients, likes, and reviews
📆 Upcoming Meals
- Users can preview next meals
- Premium users can ❤️ like meals
- Admins can toggle publish status
💸 Stripe Payment Integration
- Stripe Checkout to upgrade to premium membership
- Payment success updates backend status
⭐ Premium Features
- Premium members can request meals
- Access to like and interact with exclusive content
📝 Meal Reviews
- Users can write, edit, and delete reviews
- Admins can monitor all reviews from dashboard
🔎 Smart Search
- Server-side user and meal search with filters
- MongoDB indexing ensures fast lookups
📈 Real-Time Like System
- Toggle-based like/unlike system per meal
- Backend tracks
likedBylist for each item
📱 Fully Responsive UI
- Tailwind + DaisyUI design system
- Clean mobile-first layout with toast alerts and modals
🧑💼 Admin Dashboard
- Manage all meals, users, reviews, and premium requests
- Sortable tables and status controls
| Layer | Technologies |
|---|---|
| Frontend | React.js, React Router, Tailwind CSS, DaisyUI |
| Backend | Node.js, Express.js, MongoDB |
| Auth | Firebase Auth + JWT |
| Payment | Stripe Integration |
| Fetching | Axios + TanStack Query |
| Deployment | Firebase (Client) & Vercel (API Server) |
📦 Dependencies
Frontend: react, react-router-dom, @tanstack/react-query, axios, firebase, sweetalert2, stripe, tailwindcss, daisyui, react-icons
Backend: express, mongodb, jsonwebtoken, stripe, cors, dotenv
🛠 Installation & Running Locally
1️⃣ Clone the repository git clone https://github.com/your-username/hostel-meals.git cd hostel-meals
2️⃣ Install dependencies Client: cd client npm install
Server: cd server npm install
3️⃣ Set up environment variables Client (.env): VITE_apiKey=your_firebase_api_key VITE_authDomain=your_firebase_auth_domain VITE_projectId=your_firebase_project_id VITE_storageBucket=your_firebase_storage_bucket VITE_messagingSenderId=your_firebase_sender_id VITE_appId=your_firebase_app_id VITE_STRIPE_PUBLIC_KEY=your_stripe_public_key
Server (.env): PORT=5000 DB_USER=your_db_username DB_PASS=your_db_password JWT_SECRET=your_jwt_secret STRIPE_SECRET_KEY=your_stripe_secret_key
4️⃣ Run the development servers Client: npm run dev Server: npm start
✅ Login as user → View meals, reviews
✅ Attempt to like a meal without premium → Blocked
✅ Upgrade via Stripe → Success and updated membership
✅ Navigate to Admin Dashboard → Add meal, manage users
✅ Check upcoming meals → Like as premium, admin publish/unpublish
✅ Unauthorized route access → Auto-redirect to login
Ratul Saha Roy
🇧🇩 Bangladesh | 🔧 MERN Stack Developer
📫 LinkedIn | 💼 Portfolio (https://ratul-saha-roy.web.app/)
🚨 This is a practice/assignment project and not intended for production use. Feel free to fork and explore!
