Skip to content

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.

License

Notifications You must be signed in to change notification settings

otseobande/Book-A-Meal

Repository files navigation

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.

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published