Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ayu-ano/feastfleet
Food Delivery website
https://github.com/ayu-ano/feastfleet
context-api express-js javascript jwt-token middlewares mongodb-atlas mongoose node-js react-hooks react-router reactjs stripe validator
Last synced: 14 days ago
JSON representation
Food Delivery website
- Host: GitHub
- URL: https://github.com/ayu-ano/feastfleet
- Owner: ayu-ano
- Created: 2024-10-20T14:25:24.000Z (28 days ago)
- Default Branch: main
- Last Pushed: 2024-11-03T11:31:27.000Z (14 days ago)
- Last Synced: 2024-11-03T12:23:57.095Z (14 days ago)
- Topics: context-api, express-js, javascript, jwt-token, middlewares, mongodb-atlas, mongoose, node-js, react-hooks, react-router, reactjs, stripe, validator
- Language: Python
- Homepage:
- Size: 23.9 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🍽️ FeastFleet
Welcome to the **Food Ordering System**, a full-stack web application designed to facilitate online food ordering with seamless management for both customers and administrators. This project integrates an intuitive UI for customers, a powerful backend for order management, and an admin panel for managing food items and processing orders.
## 📋 Table of Contents
1. [Overview](#-overview)
2. [Features](#-features)
3. [Tech Stack](#-tech-stack)
4. [Installation](#-installation)
5. [Usage](#-usage)
6. [API Endpoints](#-api-endpoints)
7. [Screenshots](#-screenshots)
8. [Contributing](#-contributing)
9. [Contact](#-contact)## 🌟 Overview
The **Food Ordering System** is a web-based application where customers can:
- Register and log in to their accounts.
- Browse a variety of food categories.
- Add items to their cart and place orders.
- Track the status of their orders.Administrators have full control to:
- Add, edit, and remove food items.
- Manage customer orders and update statuses.
- View order details and customer information.## ✨ Features
### For Customers:
- **User Authentication**: Secure registration and login using JWT.
- **Order Food**: Browse available food items and place orders.
- **Order Tracking**: Track the order status from preparation to delivery.
- **User Profile**: Update personal information.### For Admins:
- **Food Management**: Add, edit, and delete food items.
- **Order Management**: View all orders, update order statuses.
- **Customer Management**: View customer information and order history.### General:
- **Payment Integration**: Easily make payments for food orders.
- **Responsive Design**: Works seamlessly on desktop and mobile devices.
- **Real-time Updates**: Track order statuses in real-time.## 🛠️ Tech Stack
### Frontend:
- **React** with hooks for dynamic rendering.
- **Axios** for HTTP requests.
- **React Router** for client-side navigation.
- **Bootstrap** and custom CSS for responsive design.
- **React Toastify** for user notifications.### Backend:
- **Node.js** with Express for server-side logic.
- **MongoDB** with Mongoose for the database.
- **JWT** for secure authentication.
- **Multer** for file handling (images).
- **Bcrypt** for password hashing.### Tools & Libraries:
- **Axios**: For API requests.
- **Toastify**: For notifications.
- **FormData**: To handle image uploads.
- **dotenv**: For environment variables.## 📦 Installation
### Prerequisites:
- Node.js (v14+)
- MongoDB (local or cloud)
- Git### Steps:
1. **Clone the repository**:
```bash
https://github.com/ayu-ano/FleetFeast.git
```2. **Navigate to the project folder**:
*Frontend*
```bash
cd frontend
```
*Backend*
```bash
cd backend
```
*Admin*
```bash
cd admin
```3. **Install dependencies**:
###### for frontend
```bash
npm install
```
```bash
npm install react-router-dom
```
###### for admin
```bash
npm install
```
###### for backend
```bash
npm install express mongoose bcrypt validator jsonwebtoken nodemon cors dotenv body-parser multer stripe
```4.**Set up environment variables: .env file**:
```bash
MONGO_URI=
JWT_SECRET=
PORT=5000
STRIPE_SECRET_KEY=
```5.**Start the server (backend):** use any one command
```bash
npm run server
npm server.js
nodemon server.js
```## 🚀Usage
### Running the Project
#### Development Mode:
- **Backend**: `npm run dev`
- **Frontend**: `npm start` in the `frontend` directory.#### Production Mode:
- **Build frontend**: `npm run build` in the `frontend` directory.
- **Serve**: `npm start`## Testing
- Unit tests can be added using **Jest** or **Mocha**.
- We also have folder name `tests` in which we perform testing for backend part.
- Lint the code using **ESLint**:```bash
npm run lint
```## 📡 API Endpoints
### User Routes:
- **POST** `/api/user/register` - Register a new user.
- **POST** `/api/user/login` - Login a user.### Order Routes:
- **POST** `/api/order/place` - Place a new order.
- **POST** `/api/order/verify` - Verify order payment.
- **POST** `/api/order/userorders` - Retrieve user-specific orders.
- **GET** `/api/order/list` - List all orders for admin.
- **POST** `/api/order/status` - Update order status.### Food Routes:
- **POST** `/api/food/add` - Add a new food item.
- **GET** `/api/food/list` - Retrieve all food items.
- **POST** `/api/food/remove` - Remove a food item.## 📸 Screenshots
- **Home Page**
![Home Page](./soft-doc/img_1.jpg)
![Home Page](./soft-doc/img_2.jpg)
![Home Page](./soft-doc/img_3.jpg)- **Use case Diagram**
![Use case Diagram](./soft-doc/model.jpg)- **Admin Panel**
![Admin Panel](./soft-doc/admin_add.jpg)
![Admin Panel](./soft-doc/admin_list.jpg)
![Admin Panel](./soft-doc/admin_order_placed.jpg)- **Order Tracking**
![Order Tracking](./soft-doc/myorders.jpg)- **Payment Page**
![Payment Page](./soft-doc/cart0.jpg)
![Payment Page](./soft-doc/carttotals.jpg)
![Payment Page](./soft-doc/payment.jpg)## 📄 Documentation
For more detailed information, please refer to the [User Guide](https://drive.google.com/file/d/19CM_4ZhQy2Nv-2Pj9qkeQIcy8zVeqtWA/view?usp=sharing).
11. ## 🤝 Contributing:
- Fork the repository.
- Create a new branch for your feature: `git checkout -b feature-name`.
- Commit your changes: `git commit -m 'Add some feature'`.
- Push to the branch: `git push origin feature-name`.
- Create a `pull` request.## 📞 Contact
- Author: `Ayush Kumar`
- For any inquiries or feedback, please reach out via GitHub: [Ayush Kumar](https://github.com/ayu-ano)