Skip to content

MealDash is a full-stack food ordering web application built with React.js and Node.js. It features user authentication, dynamic cart management, secure Stripe payment integration, and an admin panel for managing menu items and delivery status. The app provides a seamless end-to-end experience from browsing meals to placing and tracking orders.

Notifications You must be signed in to change notification settings

moali007/MealDash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍽️ MealDash – Full Stack Food Ordering Web App

MealDash is a complete full-stack food delivery web application that allows users to browse, add food to their cart, place orders, and pay online. Built using the MERN stack (MongoDB, Express, React, Node.js) and integrated with Stripe for secure payment processing, MealDash provides a seamless and responsive food ordering experience.


🚀 Features

✅ User-Facing Features

• User Authentication

Secure sign-up and login functionality using JWT authentication. Users can register, log in, and manage their session.

• Dynamic Food Menu

Users can browse through a list of available food items fetched dynamically from the backend.

• Shopping Cart

Add, update, or remove food items in the cart. Cart state is maintained across sessions.

• Order Placement & Payment

Users can place orders and pay securely via Stripe payment gateway.

• Order Tracking

After placing an order, users can track the current order status.

• Light/Dark Mode Toggle

Aesthetic and user-friendly UI with support for both light and dark themes.


🛠️ Admin Panel

• Admin Authentication

Admins can log in securely to manage the platform.

• Manage Food Items

Add, update, or delete food items displayed on the frontend.

• Order Management

View all incoming orders and update their delivery status (e.g., pending, in-progress, delivered).


🧰 Tech Stack

Layer Technology
Frontend React.js, Tailwind CSS
Backend Node.js, Express.js
Database MongoDB
Authentication JWT (JSON Web Tokens)
Payments Stripe Payment Gateway
State Management React Context API / useReducer
Styling Tailwind CSS, Responsive Design

📁 Folder Structure

/client → Frontend React App

/components → Reusable UI components

/pages → Route-based pages (Home, Cart, Orders, etc.)

/server → Backend Express server

/routes → API route handlers (auth, food, orders)

/controllers → Business logic

/models → Mongoose schemas

/admin → Admin panel frontend


🔐 Authentication Flow

1.) Users register and login using their email and password.

2.) A JWT token is generated on login and stored securely in localStorage or HTTP-only cookies.

3.) Protected routes are implemented to restrict access to authenticated users only.


💳 Payment Integration with Stripe

• Stripe is used to securely handle online payments.

• Users are redirected to a Stripe checkout page with order summary.

• Upon successful payment, the order is saved in the database and order status is updated.


📦 How to Run the Project Locally

1.) Clone the repository

git clone https://github.com/your-username/MealDash.git

cd MealDash

2.) Install dependencies

# For server
cd server
npm install

# For client
cd ../client
npm install

# For admin
cd ../admin
npm install

3.) Set up environment variables

Create a .env file in the /server folder with the following variables:

MONGO_URI=your_mongo_connection_string
JWT_SECRET=your_jwt_secret
STRIPE_SECRET_KEY=your_stripe_secret

4.) Backend Setup

To setup the backend, follow the instructions given in Project Setup Guide.

5.) Start the development servers

# Start backend
cd server
npm run start

# Start frontend
cd ../client
npm run dev

# Start admin panel
cd ../admin
npm run dev

📸 Screenshots


🏠 Home Page

Home Page.



🛒 Cart Page


🚚 Place Order Page

🙌 Future Enhancements

• Add delivery partner dashboard

• Add email notifications

• Add ratings & reviews for food items


📃 License

This project is open-source and available under the MIT License.

About

MealDash is a full-stack food ordering web application built with React.js and Node.js. It features user authentication, dynamic cart management, secure Stripe payment integration, and an admin panel for managing menu items and delivery status. The app provides a seamless end-to-end experience from browsing meals to placing and tracking orders.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published