This repository contains the source code for a comprehensive coffee shop management application. This application is designed to streamline the operations of a coffee shop, including order management, inventory tracking, customer management, and reporting.
- About the Project
- Getting Started
- Usage
- Configuration
- Features
- Project Structure
- Future Enhancements
- Acknowledgements
The Coffee Shop application aims to provide an efficient way to manage the day-to-day operations of a coffee shop. From taking customer orders to tracking inventory and generating reports, this application covers all essential aspects of coffee shop management.
- React - Frontend library
- Node.js - Backend runtime
- Express - Web framework for Node.js
- MongoDB - NoSQL database
- Bootstrap - Frontend framework
To get a local copy up and running, follow these simple steps.
Ensure you have the following installed on your machine:
-
Clone the repository:
git clone https://github.com/stefann-01/Coffee-Shop.git
-
Navigate to the project directory:
cd Coffee-Shop
-
Install dependencies for both frontend and backend:
cd client npm install cd ../server npm install
-
Start MongoDB:
Follow the instructions to start MongoDB on your machine. Typically, you can start it with:
mongod
To start the development server, use the following commands:
-
Start the backend server:
cd server npm start
-
Start the frontend development server:
Open a new terminal and navigate to the client directory:
cd client npm start
-
Access the application:
Open your browser and navigate to
http://localhost:3000
to use the Coffee Shop application.
To populate the application with sample data for testing, you can run the provided seed script:
cd server
npm run seed
The application can be configured using environment variables. Create a .env
file in the root of the server
directory and add the following variables:
DATABASE_URL=mongodb://localhost:27017/coffeeshop
PORT=5000
JWT_SECRET=your_jwt_secret
-
Order Management:
- Create, update, and delete customer orders.
- View order history and status.
-
Inventory Management:
- Track inventory levels for ingredients and products.
- Receive notifications for low stock items.
-
Customer Management:
- Store customer information and preferences.
- Access purchase history and loyalty points.
-
Reporting:
- Generate daily, weekly, and monthly sales reports.
- Analyze inventory usage and waste.
The backend services are located in the rest_servis
directory and include the following:
- Order Service: Manages customer orders, including CRUD operations and order status tracking.
- Inventory Service: Manages inventory items, tracks stock levels, and generates low stock alerts.
- Customer Service: Manages customer information, preferences, and purchase history.
- Reporting Service: Generates various reports based on sales and inventory data.
The frontend application is located in the app_servis
directory and includes the following components:
- Order Management UI: Interface for creating, updating, and viewing orders.
- Inventory Management UI: Interface for tracking and updating inventory items.
- Customer Management UI: Interface for managing customer information and viewing purchase history.
- Reporting UI: Interface for generating and viewing sales and inventory reports.
The project has several planned enhancements, including:
- Mobile Application: Develop a mobile version of the application for on-the-go management.
- Advanced Analytics: Add more detailed analytics and data visualization for better decision-making.
- Loyalty Program Integration: Implement a customer loyalty program with points and rewards.
- Multi-language Support: Add support for multiple languages to cater to a broader audience.