DineFlow is a modern, scalable, and high-performance restaurant management platform. It simplifies the ordering process for customers while providing restaurant owners with a robust dashboard to manage menus and track orders.
Status: Fully functional portfolio project showcasing advanced authentication, payment integration, and clean architecture.
- Frontend: https://dineflow-demo.netlify.app
- API Server: https://dineflow-server.onrender.com
- Secure Authentication: JWT & Cookie-based secure login/signup system.
- Email Verification: Account verification and password recovery via Mailtrap.
- Dynamic Menu: Browse and filter dishes by categories or search terms.
- Smart Cart: Built-in logic to restrict orders to one restaurant at a time (Foodpanda style).
- Seamless Payments: Integrated Stripe payment gateway for secure transactions.
- Order Status: Real-time tracking of order progress (Pending, Confirmed, Delivered).
- Restaurant Profile: Setup and customize restaurant details with image uploads (Cloudinary).
- Menu Management: Full CRUD operations (Create, Read, Update, Delete) for menu items.
- Order Dashboard: Manage incoming orders and update their status.
- Image Hosting: High-performance image management using Cloudinary.
- Framework: React.js (TypeScript)
- Styling: Tailwind CSS + Shadcn/UI
- State Management: Zustand (with Persistence)
- Validation: Zod
- Icons: Lucide-React
- Runtime: Node.js (TypeScript)
- Framework: Express.js
- Database: MongoDB (Mongoose)
- Security: JWT, Bcrypt, Cookie-Parser
- Payment: Stripe API
- Mailing: Mailtrap (Nodemailer)
- File Upload: Multer & Cloudinary
DineFlow/
├── Client/ # Frontend (Vite + React + TS)
│ ├── src/
│ │ ├── store/ # Zustand store (Auth, Cart, Restaurant)
│ │ ├── schema/ # Zod validation schemas
│ │ └── pages/ # Page components
└── Server/ # Backend (Node.js + Express + TS)
├── src/
│ ├── controllers/ # Business logic
│ ├── models/ # Database schemas
│ ├── routes/ # API Endpoints
│ └── mail/ # Email templates & service
git clone https://github.com/mahin527/dineflow.git
cd DineFlowcd Server
npm install
# Create a .env file and add your credentials
npm run devcd Client
npm install
npm run devCreate a .env file in the Server directory:
PORT = 8000
FRONTEND_URL= ...
CORS_ORIGIN = ...
SECRET_TOKEN = ...
SECRET_TOKEN_EXPIRY = 1d
# DataBase info
MONGODB_USERNAME = ...
MONGODB_PASSWORD = ...
MONGODB_URI = ...
# Cloudinary info
CLOUDINARY_CLOUD_NAME = ...
CLOUDINARY_API_KEY = ...
CLOUDINARY_API_SECRET = ...
# mailtrap
MAILTRAP_API_TOKEN = ...
# Stripe
STRIPE_PUBLISHABLE_KEY =...
STRIPE_SECRET_KEY = ...
#webhook
WEBHOOK_ENDPOINT_SECRET =...
Mahin Hasan Full-Stack Web Developer | Shopify Expert
📧 Email |
💬 Messenger |
🎮 Discord Server (Username: mahin527)