/More-recipesApp

More-Recipes Application is a recipe sharing platform where users can create, view, like and share recipes

Primary LanguageJavaScriptMIT LicenseMIT

Build Status Coverage Status Maintainability

More-recipesApp This is a full stack application that enables users share exciting recipes, it also comes with other amazing features.

screen shot 2018-01-27 at 12 13 26 pm

View Production App Here: [https://still-mesa-59950.herokuapp.com/]

Core Technology Stacks

  • Front-end: React/Redux + Bootstrap
  • Back-end: Expressjs + Sequelize
  • System Dependencies: Node + Postgres

Folder Structure

  • client: contains React/Redux implementation
  • server: contains the project API developed in Node/express + Sequelize/postgres

API Documentation

Access to API endpoints are restricted based on the authorization token and roles assigned to the user. This token is generated when a new user signs up, and when a returning user signs in.

For more information of how to use the API, visit the Documentation here.

Getting Started

Installation

  • Clone the repo https://github.com/pawnjester/More-recipesApp.git
  • Ensure you have installed NodeJS and Postgres
  • Navigate into the app's root directory: cd folderName
  • Setup PostgresSql on your local machine
  • Run $ npm install && bower install to install all dependencies
  • Install sequelize-cli, Run $ npm install -g sequelize-cli (note: sudo install on ubuntu or MAC)
  • Create a .env file in the root directory using the sample .env.sample file
  • setup your db according to settings in server/onfig/config.json
  • then run $ sequelize db:migrate
  • Run tests to ensure the app is not broken: npm test:dev
  • For end to end testing, run npm run start:dev and npm run e2e:test simultaneously

How to Demo/Run the App

  • To start the App in development: npm run start:dev
  • To start the App in a production environment run: npm run heroku:post-build then npm run start

Available Functionalities on the Client

  • Signup
  • Signin
  • Create a recipe
  • Favorite a recipe
  • Delete a recipe
  • Edit a recipe
  • View a recipe
  • Upvote a recipe
  • Downvote a recipe
  • Add a review to a recipe
  • Delete a review to a recipe
  • Search for a recipe
  • Edit a user
  • Delete a favorite
  • View most favorited recipes
  • View most upvoted recipes
  • Reset password
  • Change Password

Testing

  • Front-end: Jest
  • Back-end: Mocha/Chai, expect, supertest

Limitations

The limitations with this current version of More-recipesApp includes:

  • Authenticated users cannot view the profile of other users
  • Authenticated users cannot disable account

CONTRIBUTING

This project is open for contributions. All contributions must adhere to the Airbnb styleguide.

To get started:

  • Raise an Issue here
  • Fork the repository
  • Create your feature branch: git checkout -b my-new-feature
  • Commit your changes: git commit -am 'Added some features'
  • Push to the branch: git push origin my-new-feature
  • Submit a PR (pull request) to the develop branch

FAQ

  • view Frequently Asked Questions here

Author(s)