Skip to content

BigSamu/Restaurant_Order_System

Repository files navigation

Github Follow

Forks Stars Watchers Ask Me Anything Say Thanks! Gmail Small LinkedIn Small Hackerrank Small

Restaurant Order System

A simple microservice application for a restaurant management system. Implemented with React, Vite, Express, Docker, RabbitMQ and SocketIO.

Demo available in following link

demo_video

Table of Contents

(back to top)


About The Project

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 🏗️.

(back to top)


Technologies

The following technologies are used for the implementation of this project:

HTML5 Javascript Node NPM React Vite Bootstrap ExpressJ Webpack Babel Mongo RabbitMQ Docker SocketIO Nginx

Plus these platforms and tools for the development and deployment process:

VSCode Postman Github AWS

(back to top)


Getting Started

Prerequisites

For the setup of this web application, the following prerequisites are required

  • Node.js or greater and (Node Package Manager) NPM.
  • Docker

For easy management of Node.js environments, Node Version Manager (NVM) tool is recommended.

Installation

To get a copy of this project and run it in your local environment, follow the steps listed below.

  1. Clone the repo

    git clone https://github.com/BigSamu/Restaurant_Order_System
  2. Go into the repository

    cd Restaurant_Order_System
  3. 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
  1. Run docker using the following script
./run.sh --dev

(back to top)

Usage

After successful installation, you will be able to check the WebApp in any browser by visiting the following URL address: http://localhost:3000

(back to top)


Contact Me

Feel free to contact me if you have any doubt!

Samuel Valdes Gutierrez

Gmail Twitter LinkedIn HackerRank

(back to top)


Developed with ❤️ in Chile 🇨🇱

About

A demo of a microservice design for a restaurant management system. Implemented with React, Vite, Express, Docker, RabbitMQ and SocketIO

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors