iMenu is an online application for booking your meals on the go. Sign up is easy and placing an order is hassle free and fast. The UI is appealing and interactive.
You will need the following tools to get the project running
- Express - A Node.js framework
- Body-parser - A middleware for accessing request parameters through the req.body property
- Babel - A Javascript Transpiler for ES6 and above.
- Nodemon: Node package for automatically restarting the project whenever changes are made
- Morgan: For logging request details in console
- Eslint: Javacript linting package
- Airbnb: Linting style guide
- Mocha: Testing Framework
- Chai and Chai-http: Mocha Assertion libary and plugin
- Coveralls: Used for coverage test
- git clone [email protected]:codeBlock-1984/iMenu.git
- git checkout develop
- $ npm install
The UI is hosted on gh-pages
- Customer login/signup page
- Orders page: Customer can place an order from the day's menu
- Menu setup page: Caterer can setup menu for the day
- Meal options page: Caterer can create, edit, or delete meal options.
- Records page: Caterer can view all records of orders and transaction details for the day
The API is hosted on Heroku
The following API Endpoints are available for requests:
Create a meal [POST] https://imenu-app.herokuapp.com/api/v1/meals
Get all meals [GET] https://imenu-app.herokuapp.com/api/v1/meals
Get a meal by ID [GET] https://imenu-app.herokuapp.com/api/v1/meals/<mealId>
Modify a meal by ID [PUT] https://imenu-app.herokuapp.com/api/v1/meals/<mealId>
Delete a meal by ID [DELETE] https://imenu-app.herokuapp.com/api/v1/meals/<mealID>
Setup a menu [POST] https://imenu-app.herokuapp.com/api/v1/menus
Get a menu by date [GET] https://imenu-app.herokuapp.com/api/v1/menus/<menuDate>
Get all menus [GET] https://imenu-app.herokuapp.com/api/v1/menus
Get orders by date [GET] https://imenu-app.herokuapp.com/api/v1/orders/<ordersDate>
Place an order [POST] https://imenu-app.herokuapp.com/api/v1/orders
Modify an order by ID [PUT] https://imenu-app.herokuapp.com/api/v1/orders/<orderId>
Delete an order by ID [GET] https://imenu-app.herokuapp.com/api/v1/orders/<orderId>
To run the automated test suite run the command below in your terminal
- npm run test