Pizza Delivery System App (MERN - MongoDB, Express, React, Node.js) is a comprehensive web application that enables users to customize and order pizzas online. This project showcases a full-stack development approach with a focus on user experience, functionality, and security. The app includes a user-friendly frontend interface for ordering pizzas, an admin dashboard for managing orders and inventory, and a secure backend server for processing orders and payments.
- User & Admin Authentication: Secure login and registration system with role-based access control for users and administrators.
- Pizza Management System: Full CRUD operations for pizzas, allowing both admins and users to create custom pizzas with various ingredients (bases, sauces, cheeses, veggies).
- Inventory Management: Complete tracking system for pizza ingredients with quantity monitoring, threshold alerts, and price management for bases, sauces, cheeses, and vegetables.
- Order Processing System: End-to-end order management with order creation, status tracking, and delivery monitoring functionality.
- Payment Integration: Secure payment processing through Razorpay API with order checkout capabilities and payment verification.
- Multi-level Access Control: Differentiated capabilities for users and admins, with specific permissions for pizza creation, order management, and inventory control.
- Order History & Tracking: Users can view their order history and track current order status through the delivery process.
- Admin Dashboard: Comprehensive order management system allowing admins to view all orders, update order status, and manage inventory levels.
- Automatic Inventory Deduction: System automatically updates ingredient quantities when orders are placed to maintain accurate inventory levels.
- Frontend: React.js (Vite.js) (Tailwind CSS) (React Router) (@reduxjs/toolkit) (React Redux) ()
- Backend: Node.js (Express) (bcryptjs) (cors) (dotenv) (express-async-handler) (jsonwebtoken)
- Database: MongoDB (Atlas) (Mongoose) (MongoDB Compass)
- Payment: Razorpay API (Test Mode)
- Authentication: JSON Web Tokens (JWT)
- Email Notifications: Nodemailer
- Version Control: Git and GitHub
-
Clone the repository
git clone https://github.com/itxSaaad/pizza-palette-app-mern-OIBSIP-task-1.git cd pizza-palette-app-mern-OIBSIP-task-1
-
Install dependencies
# Install server dependencies npm install # Install client dependencies cd client npm install cd ..
-
Configure environment variables
Create a
.env
file in the root directory:# Server Configuration NODE_ENV=development PORT=5000 # MongoDB Connection MONGO_URI=your_mongodb_uri # Authentication JWT_SECRET=your_jwt_secret SALT=10 # Email Configuration SENDER_EMAIL=your_email@example.com SENDER_PASSWORD=your_email_password SUPERADMIN_EMAIL=admin@example.com # Payment Gateway RAZORPAY_KEY_ID=your_razorpay_key_id RAZORPAY_KEY_SECRET=your_razorpay_key_secret
Create a
.env
file in the client directory:VITE_SERVER_URL=http://localhost:5000 VITE_CLIENT_URL=http://localhost:3000 VITE_RAZORPAY_KEY_ID=your_razorpay_key_id
-
Seed the database (Optional)
Populate the database with initial data:
npm run data:import
To reset the database:
npm run data:destroy
-
Start the application
# Run both server and client npm run dev # Run server only npm run server # Run client only npm run client
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
Note: Make sure MongoDB is running locally or you're using MongoDB Atlas with the correct connection string.
Contributions are what make the open-source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the repo
- Clone the project
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m "Add some AmazingFeature"
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a pull request
- Twitter: @itxSaaad
- LinkedIn: @itxSaaad
- Portfolio: Muhammad Saad Faisal
- Email: saadstudent.cs@gmail.com
Distributed under the MIT License. See LICENSE
for more information.
Give ⭐️ if you like this project!