Our project is a web application for an Italian restaurant called "Piada Italian Food". This web application allows customers to order food online, such as the various kinds of pasta, beverages, etc. The menu is accessible for everyone, and you can filter the dishes based on your input or the selected dish type. To make an order, an account is needed. By registering an account and logging in, customers will be able to put their favorite dishes into their wishlists or shopping carts. Customers are allowed to edit the number of dishes or remove dishes from the cart. Once an order is made, the price will be calculated and the customer can review the order history in the profile. The administrator account is able to add, edit, remove, and recover the dishes. Besides, the administrator has access to check all the order history from the database.
- Node.js: an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside of a web browser.
- Express.js: a web application framework for Node.js.
- Nodemon: a utility that will monitor for any changes in your source and automatically restart your server.
- MongoDB: a cross-platform document-oriented database program.
- Monk: A tiny layer that provides simple yet substantial usability improvements for MongoDB usage within Node.JS.
- Robo 3T: a shell-centric cross-platform MongoDB management tool.
To use our application, the database should be deployed at port 27017
. Initially it only needs one document in one database. The name of the database is restaurant
. The name of the table is menus
. To get the content of the menus
table, the JSON file is located at ./menus.json
.
Use these commands:
$ git clone https://github.com/Michaelyangzhaohua/resturantApp-NodeJS.git
$ cd resturantApp-NodeJS/
$ npm install
$ nodemon
After typing these commands in the terminal, you will be able to try our application from localhost:3000
.
After the registration, by default the account will be a normal account. To obtain administrator's permission, the only way would be changing the isAdmin
property from the accounts
table.
We already have a sample for you. From ./Data For Testing/
folder, you can find the sample information of a new dish (menus_add.json
), including the image file. Following the instruction of the "Adding new dish" page, you will be able to add a new dish to the menu and the database.
- You can find some JSON dump files from our previous test run at
./MongoDB JSON Files/
. - You can check our implementation timeline at
./WorkingProgress.md
.