A simple microservice application for a restaurant management system. Implemented with React, Vite, Express, Docker, RabbitMQ and SocketIO.
Demo available in following link
This project is a demo for a microservice-based restaurant management system 🍽️, designed to address the unique challenge of serving random free meals 🎉 during a special event. Utilizing a tech stack that includes React, Vite, Express, Docker, RabbitMQ, and SocketIO, it automates the flow from a manager's meal request 📋 to a kitchen 🧑🍳 and warehouse 🏭 service (i.e. ingredients retrieval and meal preparation, respectively). To handle mass orders efficiently 🚀, the design incorporates a solution with message broker services 📬 (i.e. RabbitMQ), facilitating asynchronous processing and communication between the kitchen and warehouse services. The system features automated recipe selection based on available ingredients 🥦🍅, real-time order tracking 📊, and seamless inventory management 📦, including automatic replenishment from a market API when stocks are low. It showcases how technology can streamline restaurant operations, handle mass orders efficiently, and maintain inventory, all within a flexible microservices architecture 🏗️.
The following technologies are used for the implementation of this project:
Plus these platforms and tools for the development and deployment process:
For the setup of this web application, the following prerequisites are required
Node.jsor greater and(Node Package Manager) NPM.Docker
For easy management of Node.js environments, Node Version Manager (NVM) tool is recommended.
To get a copy of this project and run it in your local environment, follow the steps listed below.
-
Clone the repo
git clone https://github.com/BigSamu/Restaurant_Order_System
-
Go into the repository
cd Restaurant_Order_System -
Create a .env.development file and update the enviroment variables that don't have values. Use as reference the
env.sample. The env variables that required an update are the following:
NODE_ENV="development-or-production" # Change for "development" for this case
RESTAURANT_ORDER_SYSTEM_DOMAIN="<your-domain>" # Change for "localhost" for this case
VITE_RESTAURANT_ORDER_SYSTEM_DOMAIN="your-domain" # Change for "localhost" for this case
DATABASE_USER="your-database-user" # mongo database user
DATABASE_PASSWORD="your-database-password" # mongo database password
DATABASE_NAME="your-database-name" # mongo database name
- Run docker using the following script
./run.sh --devAfter successful installation, you will be able to check the WebApp in any browser by visiting the following URL address: http://localhost:3000
Feel free to contact me if you have any doubt!
Samuel Valdes Gutierrez
Developed with ❤️ in Chile 🇨🇱
