Skip to content

Book-A-Meal is an application that allows food vendors add meals to a daily menu and lets the customers make food orders from the menu.

License

Notifications You must be signed in to change notification settings

iverenshaguy/book-a-meal

Repository files navigation

Build Status Coverage Status Maintainability

An application that allows customers to make food orders and helps the food vendor to know what the customers want to eat.

Table of Contents

Pivotal Tracker

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

Template is hosted at https://iverenshaguy.github.io/book-a-meal/UI/index.html

API Deployment

API is not yet deployed

Documentation

Documentation is not yet hosted

Technologies

  • NodeJS - Runtime Environment
  • ExpressJs - Web Application Framework
  • React - JavaScript Library for Building User Interfaces
  • Redux - Predictable State Container for JavaScript Apps

Supporting Packages

Linter

Compiler

  • Babel - Compiler for Next Generation JavaScript

Bundler

  • Webpack - Javascript Tool for Bundling Assests

Test Tools

  • 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

Versions

This is version 2 and it is currently in active development.

Version 1 can be found here.

Features Implemented

Users (Caterers and Customers)

  • Users should be able to signin and signup on the app as either a caterer or a customer

Caterers

  • 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

  • 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

Getting Started

Development

  • 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

Testing

Testing with Coverage Data

  • 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

Using the Live App

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.

Limitations

  • Application is not integrated with a payment platform
  • Application is not real time
  • Orders cannot be filtered by status or date

Contributing Guide

  • 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

FAQs

  • 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

License

© Iveren Shaguy

Licensed under the MIT License

About

Book-A-Meal is an application that allows food vendors add meals to a daily menu and lets the customers make food orders from the menu.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages