|
| 1 | +# The Coffee Bean Cart |
| 2 | + |
| 3 | +<p align="center"> |
| 4 | + <img src="https://img.shields.io/badge/REACT->=18.3.1-lightgreen?style=for-the-badge" alt="React Badge" /> |
| 5 | + <img src="https://img.shields.io/badge/NODEJS->=20.18.0-green?style=for-the-badge" alt="NODEJS Badge" /> |
| 6 | + <img src="https://img.shields.io/badge/EXPRESS->=4.21.1-orange?style=for-the-badge" alt="Express Badge" /> |
| 7 | + <img src="https://img.shields.io/badge/MYSQL-8.0.17-lightblue?style=for-the-badge" alt="React Badge" /> |
| 8 | + <img src="https://img.shields.io/badge/DOCKER->=27.3.1-blue?style=for-the-badge" alt="Docker Badge" /> |
| 9 | +</p> |
| 10 | +A full-stack web application for ordering coffee beans, with a modern tech stack and robust CI/CD pipeline. This project provides a smooth ordering experience and aims to support coffee enthusiasts and admin users in managing orders and inventory efficiently. |
| 11 | + |
| 12 | +[Demo Link](https://coffeecart-frontend.onrender.com/) |
| 13 | + |
| 14 | +## Features |
| 15 | + |
| 16 | +- **Intuitive Ordering**: Users can browse, select, and order coffee beans. |
| 17 | +  |
| 18 | + |
| 19 | + |
| 20 | +- **Order Management**: Review, manage, and delete orders. |
| 21 | + This project implements CRUD operations for managing orders: |
| 22 | + - **C**reate: Users can create an order by typing their name, shop name, coffee type, and amount. After entering the information, they can press the "Place order" button to submit the order. |
| 23 | + - **U**pdate: Users can update their orders by entering the same name, shop name, and coffee type, then updating the amount. After making the changes, pressing "Place order" updates the order. |
| 24 | + - **R**ead: Users can scroll through the list of orders to review them. |
| 25 | + - **D**elete: If users wish to delete a specific order, they can press the "Delete" button to remove it. |
| 26 | +  |
| 27 | + |
| 28 | +- **CSV Export**: Export orders and inventory data for easy tracking. |
| 29 | + |
| 30 | + |
| 31 | +## Project Structure |
| 32 | + |
| 33 | +``` |
| 34 | +coffee-bean-order/ |
| 35 | +├── backend/ |
| 36 | +│ ├── src/ # Backend logic |
| 37 | +│ ├── __tests__/ # Tests |
| 38 | +│ └── Dockerfile |
| 39 | +├── frontend/ |
| 40 | +│ ├── src/ # React components |
| 41 | +│ └── Dockerfile |
| 42 | +├── docker-compose.yml |
| 43 | +└── .env # Environment variables |
| 44 | +``` |
| 45 | + |
| 46 | +## Local Setup |
| 47 | + |
| 48 | +1. Clone the repository. |
| 49 | +2. Set up a MySQL database and update `.env` with credentials. |
| 50 | + ``` |
| 51 | + MYSQL_USER=<YOUR_MYSQL_USER> |
| 52 | + MYSQL_PASSWORD=<YOUR_MYSQL_PASSWORD> |
| 53 | + MYSQL_DATABASE=<YOUR_MYSQL_DATABASE> |
| 54 | + MYSQL_TEST_DATABASE=<YOUR_MYSQL_TEST_DATABASE> |
| 55 | + API_BASE_URL=<YOUR_API_BASE_URL> |
| 56 | + ``` |
| 57 | +4. Run `docker-compose up --build -d`. |
| 58 | +5. Access at `http://localhost`. |
| 59 | + |
| 60 | +## Contributing |
| 61 | + |
| 62 | +Interested in contributing? We welcome bug fixes, new features, and documentation improvements. Simply open an issue or pull request to get started! |
0 commit comments