/More-Recipes

More-Recipes is an application application that provides a platform for users to share their cooking experience. Users can view, vote and review recipes submitted by other users. They can also submit, edit and delete their own recipes.

Primary LanguageJavaScript

More-Recipes

Build Status Coverage Status Maintainability License: MIT

Introduction

More-Recipes is an application devoted to enhacing sharing of users' experience in the area of cooking. Registered users can view recipes submitted by other users. They can like, unlike, review and favorite such recipes. In addition, registered users can submit recipes and are able to edit and delete their own recipes.

Application Link

https://victor-more-recipes.herokuapp.com/

Key Application features

  • Users can create account and log in
  • Users can view recipes submitted by other users
  • Authenticated uses can view details of a recipes in the catalog
  • Authenticated user can edit and delete a recipe he submitted
  • Authenticated user can add a recipe as his favourite
  • Authenticated user can view a list of his favorite recipes
  • Authenticated user can manage his profile
  • Authenticated user can log out
  • Authenticated user can upvote or downvote a recipe
  • Authenticated user can review a recipe and see other users' reviews

Technologies used

  • NodeJS A Javascript runtime for serverside development
  • Postgres DBMS: An open-source RDBMS for storing data
  • Sequelize ORM: A JavaScript-based ORM for mapping JS oject to DB tables.
  • Bootsrap: A free and open-source front-end web framework for designing web applications templates.
  • Express web framework: A NodeJS web application framework
  • JSON Web Token: A JSON-based standard for creating access tokens.
  • Bcrypt: A package for hashing password.
  • React: A JavaScript library for building application user interfaces.
  • Redux: An open-source JavaScript library form managing application state.

Installing the application

  • Install NodeJS and Postgres on your local system
  • Clone the application to your local system
> $ `git clone https://github.com/Victoradukwu/More-Recipes.git`
  • Change the directory on your local system
> $ `cd /More-recipes`
  • Install all dependencies
> $ `npm install`
  • create a .env file at you app root and populate it withb the encironment variables such as:
DB_USERNAME = your database username
DB_PASSWORD = your database password
DB_DATABASE = your database name
DB_HOST = "127.0.0.1"
DB_PORT = "5432"
DB_DIALECT = "postgres"
secretKey = your secret key
jwtid = your jwt id
expiresIn = jwt expiration e.g "72h"
  • Migrate the application
> $ `sequelize db:migrate`
  • Start the application
> $ npm start

Application API Documentation

Testing

  • Create a test database and name it Testdb
  • Run Test $ npm test

FAQ

Can I have mulitiple user account? There is only one account per user email. How many recipes can I submit? There is no limit to the number of recipes you can submit How do I recover an accidentally deleted recipe? Deleting a recipe is irrversible. Be sure before you confirm delete action I am at the application landing page but no link to add recipe You have to sign in (or sign up if you are new) to be able to add recipe

Application Limitation

  1. Right now, you can only have one image per recipe
  2. Once you register, you username and email can not be changed
  3. The application is only accessible via the web. No native versions yet.

How to Contribute

Please keep the following in mind while contributing:

  • We use Airbnb for our style guide. Please adhere to it.
  • Integrate codeclimate and coveralls during development.
  • Test your code using npm test script.
  • Keep pull requests concise, and document new functionality in PRs.
  • Fork the repository
  • Create a feature branch
  • Open a pull request

Bugs and Issues

If you notice a bug in this aplication, please report by creating an issue for feature. support requests with well-structured, detailed bug reports.