An application that allows customers to make food orders and helps the food vendor to know what the customers want to eat.
Project is currently being built with the Project Management Tool, Pivotal Tracker. You can find the template at https://www.pivotaltracker.com/n/projects/2165637
Template is hosted at https://iverenshaguy.github.io/book-a-meal/UI/index.html
API is not yet deployed
Documentation is not yet hosted
- NodeJS - Runtime Environment
- ExpressJs - Web Application Framework
- React - JavaScript Library for Building User Interfaces
- Redux - Predictable State Container for JavaScript Apps
- ESLint - Linter Tool
- Babel - Compiler for Next Generation JavaScript
- Webpack - Javascript Tool for Bundling Assests
- Mocha - JavaScript Test Framework for API Tests (Backend)
- Chai - TDD/BDD Assertion Library for Node
- Supertest - Super-agent driven library for testing node.js HTTP servers
- Istanbul(nyc) - Code Coverage Generator
- Jest - Javascript Testing Platform to test all JavaScript code including React applications (Frontend)
- Enzyme - Javscript testing utility for React
This is version 2 and it is currently in active development.
Version 1 can be found here.
- Users should be able to signin and signup on the app as either a caterer or a customer
- Caterers should be able to create meals
- Caterers should be able to modify meas
- Caterers should be able to delete meals
- Caterers should be able to setup menu for a particular day
- Caterers should be able to modify menu for a particular day
- Caterers should be able to get a particular order
- Caterers should be able to mark a pending order as delivered
- Caterers should be able to get all their orders on the platform
- Caterers should be able to get all their orders for a specific day
- Caterers should be able to get notifications when their meals are ordered
- Customers should be able to make an order
- Customers should be able to modify or cancel an order within 100 seconds of creating it
- Customers should be able to get the menu for the day
- Customers should be able to get a particular order
- Customers should be able to get all their orders on the platform
- Customers should be able to get all their orders for a specific day
- Customers should be able to get notifications when caterers set the menu for the day
- Install NodeJS on your computer
- Clone this repository
- Use the
.env.example
file to setup your environmental variables and rename the file to.env
- Run
npm install
to install all dependencies - Run
npm run start:dev
in development to use Nodemon - You will need to clone and install the corresponding API at https://github.com/iverenshaguy/book-a-meal-api
- After installing as shown
- Run
npm test
- This will lint code, run test and display coverage data as generated by Istanbul's nyc and Jest
The live application is not yet hosted
The Menu for each day varies and must be set by any of the registered caterers.
To test the app on any particular day, you can sign in to the app as a caterer using the test details below:
Email: test@test.com
Password: testtesttest
This will allow you to set a menu for the day if no menu is available.
- Application is not integrated with a payment platform
- Application is not real time
- Orders cannot be filtered by status or date
- Fork the repository
- Make your contributions
- Write Test Cases for your contribution with at least 80% coverage
- Create a pull request against the develop branch
-
What language is used to build this application?
- The application is built with Javascript
-
Is this an open-source project?
- Yes, this is an open-source project.
-
Who can contribute ?
- Anyone can contribute as long as you follow the contribution guide outlined above
-
Does the application have an API?
- Yes, the application has an API with a well documented reference that can be viewed here
-
Is the application licensed ?
- Yes, the application is licensed under the MIT license
© Iveren Shaguy
Licensed under the MIT License