/Mern-Stack-Intern-EY

This repository hosts a comprehensive Food Delivery web application developed using the MERN stack. It is designed to provide a seamless and efficient user experience, featuring secure user authentication, dynamic menu browsing, efficient order management, and a comprehensive admin dashboard for managing menu items, orders, and restaurants.

Primary LanguageTypeScript

EY Intern Mern Stack: Building a Robust Web Application of Food Delivery

A comprehensive Food Delivery web application developed using the MERN stack, designed to provide a seamless and efficient user experience.

🖼️ Preview image

image

image

🚀 Features

  • User Authentication: Secure login and registration system.
  • Dynamic Menu: Interactive menu for users to browse and select items.
  • Order Management: Efficient system for placing and tracking orders.
  • Admin Dashboard: Comprehensive dashboard for managing menu items, orders, and restaurants.

🛠 Tech Stack

Frontend

  • HTML, CSS (Tailwind CSS), TypeScript
  • React (for building user interfaces)
  • Vite (for fast development and build tooling)

Backend

  • Node.js (Express for server-side operations)
  • MongoDB (Database for storing application data)
  • JWT (JSON Web Tokens for secure authentication)

📂 Directory Structure

github.com/codewithshek/mern-stack-intern-ey/
├── eslint.config.js
├── index.html
├── package.json
├── postcss.config.js
├── tailwind.config.js
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
├── vite.config.ts
├── server/
│   ├── index.js
│   ├── .env
│   ├── middleware/
│   │   └── auth.js
│   ├── models/
│   │   ├── MenuItem.js
│   │   ├── Order.js
│   │   ├── Restaurant.js
│   │   └── User.js
│   └── routes/
│       ├── auth.js
│       ├── menu.js
│       ├── orders.js
│       └── restaurants.js
└── src/
    ├── App.tsx
    ├── index.css
    ├── main.tsx
    ├── vite-env.d.ts
    ├── components/
    │   ├── AdminRoute.tsx
    │   ├── Footer.tsx
    │   ├── MenuItem.tsx
    │   ├── Navbar.tsx
    │   ├── ProtectedRoute.tsx
    │   └── RestaurantCard.tsx
    ├── context/
    │   ├── AuthContext.tsx
    │   └── CartContext.tsx
    ├── pages/
    │   ├── Cart.tsx
    │   ├── Checkout.tsx
    │   ├── Home.tsx
    │   ├── Login.tsx
    │   ├── MyOrders.tsx
    │   ├── NotFound.tsx
    │   ├── OrderDetails.tsx
    │   ├── OrderSuccess.tsx
    │   ├── Profile.tsx
    │   ├── Register.tsx
    │   ├── RestaurantDetails.tsx
    │   └── admin/
    │       ├── Dashboard.tsx
    │       ├── MenuItems.tsx
    │       ├── Orders.tsx
    │       └── Restaurants.tsx
    └── utils/
        └── axios.ts

📌 Setup & Installation

  1. Clone the Repository
git clone https://github.com/codewithshek/mern-stack-intern-ey.git
cd mern-stack-intern-ey
  1. Install Dependencies
npm install
  1. Run the Application
Start the frontend
npm run dev

Start the backend
npm run server
  1. Access the Application Open your browser and navigate to http://localhost:5173/ to start using the application.

📜 Key Functions

  • authenticateUser(email, password): Authenticates a user using their email and password.
  • fetchMenuItems(): Retrieves the list of menu items from the database.
  • placeOrder(orderDetails): Places a new order with the provided details.
  • getOrderStatus(orderId): Fetches the current status of an order using its ID.

💡 Future Enhancements

✅ Implement real-time order tracking.

✅ Add support for multiple payment gateways.

✅ Develop a mobile application for better accessibility.

🤝 Contributing

Feel free to fork and submit pull requests. Any contributions are welcome!


Made with ❤️ by D ABHISHEK YADAV as part of the EY Internship