Skip to content

Latest commit

 

History

History
82 lines (57 loc) · 4.47 KB

README.md

File metadata and controls

82 lines (57 loc) · 4.47 KB

Book-A-Meal 🍚 🍴 👈

Build Status codecov Maintainability Continuous Integration

Book-A-Meal is an application that allows customers to make food orders and helps the food vendor know what the customers want to eat.

Features

Required features

  • Users can create an account and log in.
  • Admin (Caterer) should be able to manage (i.e: add, modify and delete) meal options in the application. Examples of meal options are: Beef with rice, Beef with fries etc.
  • Admin (Caterer) should be able to setup menu for a specific day by selecting from the meal options available on the system.
  • Authenticated users (customers) should be able to see the menu for a specific day and select an option out of the menu.
  • Authenticated users (customers) should be able to change their meal choice.
  • Admin (Caterer) should be able to see the orders made by the user.
  • Admin should be able to see amount of money made by end of day.

Extra Features

  • Authenticated users (customers) should be able to see their order history.
  • Authenticated users (customers) should be able to get notifications when the menu for the day has been set.
  • Admin (Caterer) should be able to see order history.
  • The application should be able to host more than one caterer.

Installation

To get the application running follow this steps:

  • Install NodeJs and Postgres on your local machine
  • clone the repository $ git clone https://github.com/otseobande/Book-A-Meal
  • Navigate to project folder $ cd Book-A-Meal
  • Make a copy of the .env.example file and rename it to .env
  • Update .env with necessary environment details e.g database credentials
  • Install npm dependencies by running npm install
  • Migrate tables to the db using npm run migrate
  • Seed database with test data using npm run seed (optional)
  • start the server in development mode by running npm run start:dev

Testing

Run npm run test to run server and client side tests together. You can as well run npm run test:client or npm run test:server to test client or server individually.

API Documentation

Find API endpoint documentation here https://meal-booking.herokuapp.com/api/v1/docs

Technologies

Backend

  • NodeJS is a JavaScript runtime built on Chrome's V8 JavaScript engine
  • Express JS A minimalist web framework
  • Sequelize Sequelize is a promise-based ORM for Node.js v4 and up. It supports the dialects PostgreSQL, MySQL, SQLite and MSSQL and features solid transaction support, relations, read replication and more.
  • PostgreSQL A powerful, open source object-relational database system.
  • ESLint provides a pluggable linting utility for JavaScript.
  • Mocha Mocha is a feature-rich JavaScript test framework running on NodeJS for testing Javascript applications.

Frontend

  • React A JavaScript library for building user interfaces.
  • Redux A predictable state container for JavaScript apps.
  • Webpack A JavaScript tool for bundling scripts, images, styles and other assets
  • Babel A JavaScript compiler for converting codes written in ES6 or JSX to ES5 that is supported by many browsers
  • Jest Jest is a testing library. Commonly used for testing React applications

Pivotal Tracker

Project is currently being managed with Pivotal Tracker, a project management tool. You can find the stories on the Book-A-Meal Pivotal Tracker Board

Contributing

To help make this project even better you can fork this repo and create a pull request using the pull request template.

License and Copyright

Licensed under the MIT License.