Grp:P003 FOODEX
By
-Neel K.Parikh(190001044)
-Bhoomil Gohel(190001008)
-Yash Suvarna(190001068)
-Parul Mogre(190001037)
-Shivesh Dave(190001057)
Foodex is an Web-Application Restaurant Management System that aims to digitalize the ordering, hall, and management processes in restaurants.
The key goal is to boost the restaurant's efficiency by eliminating regular paperwork. Tasks will be completed in less time and with greater efficiency with this method. Another advantage of this programme is that it can easily balance the load during rush hours, allowing restaurants to perform better than normal. It also expands the customer base and the online presence of the restaurant. Furthermore, human error that happens when performing tasks manually is reduced. The device would also result in a reduction in labour, lowering the restaurant's costs.
- Install the latest version of node and install npm by typing: -node i npm
- Download the code folder from github.
- Initialise npm in the folder project by running the following line in the terminal :
- npm init
- Install all the required dependancies by running
- npm i
- Run the programme by typing : node app.js
- Visit “localhost:3000” on your browser.
• The user/customer needs to visit the website (https://guarded-bastion-42339.herokuapp.com/) and register on the system using his credentials. He then needs to login to the website with the credentials he entered.
• The user can then look at the available dishes he can order on the “Food Menu” tab. Each dish has buttons leading to:-
◦“Reviews”: Check the ratings and reviews of the specific dish that other users have previously given. You can also add your own ratings and reviews.
◦ “Add to cart”: This button will add a single quantity of the dish to your cart, while clicking multiple times will add multiple quantities of the dish.
• After adding the required dishes to the cart, the user can click on the “My cart” tab where one can look at the current items in the cart along with their respective quantities and the sum total of all. The user can also remove a particular dish from the cart as well.
• On the “My cart” page, the button labelled “Place Order” can be clicked to finally order the dishes, after filling in the address form for the delivery address.
• Once the order is places, the user can click on the “check status” button as he needs to check the status of his order. There are a total of 5 status options possible:
◦ New Orders
◦ Confirmed Orders
◦ Food Dispatched
◦ Food Delivered
◦ Cancelled.
• The admin, from his side, will be able to look at the user’s order and change the status to be displayed on the user’s side as he sees fit and as the delivery process goes on.
• The user can also prematurely cancel the order before the status has changed to food dispatched if he/she wishes to. This will reflect on the admin side and the order will not be delivered.
Extraneous Features:
• The user can change his/her profile information from the “Update Profile” tab in the “Profile” tab.
• The user can also log out from the website once his/her work is done.
• The user can also change his/her password to a new one.
• The admin of the restaurant has his own side of the website to operate on.
• The admin will click on the “admin login” tab in the footer of the landing page, and it will lead to the admin dashboard page after successfully logging in with the correct credentials.
• The dashboard provides the admin a systematic look at the recieved orders (past and current) which are grouped by their current status.
• The admin can click on any particular order and change the status to reflect it on the user side accordingly.
• The admin also has the option to update the menu which is being displayed on the user side under “Food Menu”. He can add new dishes to the menu as well as remove existing dishes.
• He can also create new categories for new dishes to reside in.
• The admin also has the access to the contact information of all the users currently registered on the system, their emails and phone numbers, to contact them via these if need be.
(1)Creating Account on Heroku
First we created an account on Heroku and then downloaded Heroku CLI.
(2)Preparing Codebase for Heroku Deployment
(2a)Tracking Code in Git Repository
First we initialise empty git repository using command:
(PS C:\Users\91932\Desktop\Projects\FoodexFinal-main> git init)
Then we will add all files in it and commit these changes using commands:
(PS C:\Users\91932\Desktop\Projects\FoodexFinal-main> git add .)
(PS C:\Users\91932\Desktop\Projects\FoodexFinal-main> git commit -m “Commit Message”)
(2b)Add Heroku Git Remote
To do this we first need to login into heroku:
(PS C:\Users\91932\Desktop\Projects\FoodexFinal-main> heroku login)
Above command will redirect us to the login page.
After that To create git we will write,
(PS C:\Users\91932\Desktop\Projects\FoodexFinal-main> heroku create).
(2c)Adding Procfile
We will add Procfile using:
(PS C:\Users\91932\Desktop\Projects\FoodexFinal-main> touch Procfile).
After that we will open it and add web: node app.js line in that file.
To open File we will use:
(PS C:\Users\91932\Desktop\Projects\FoodexFinal-main>open Procfile).
(2d)Changing local port to correct port
We will add following lines in app.js:
let port = process.env.PORT;
if (port == null || port == "") {
port = 8000;
}
app.listen(port);
(2e)Creating Database in Heroku Using ClearDB MySQL
We created Database from an existing database in our computer using dump data and structure in the workbench.We exported data from local database into single file and imported that file into our remote database.For remote database,we will get url from ClearDB MySQL for username,host ,password and name.
(2f)Node language setup:
Specifying Node version in package.json file :
"engines": {
"node": "14.x" },
(3)Building App
Atlast,we will add and commit all changes into our git file using:
(PS C:\Users\91932\Desktop\Projects\FoodexFinal-main> git add .)
(PS C:\Users\91932\Desktop\Projects\FoodexFinal-main> git commit -m “Commit Message”)
To push,All changes in heroku git we will write:
(PS C:\Users\91932\Desktop\Projects\FoodexFinal-main> git push heroku master.)
This will build our app and we will get the url where our site is hosted.(Our Url:https://guarded-bastion-42339.herokuapp.com/)
This web-application was created as part of our Software Engineering (CS258) course's project. Individual Contribution:
- User Backend - Bhoomil Gohel and Parul Mogre
- User Frontend – Shivesh Dave
- Admin Side, Hosting and Testing – Neel Parikh, Yash Suvarna