Skip to content

More-Recipes provides a platform for users to share the awesome and exciting recipe ideas they have invented or learnt. Suppose a user comes up with a recipe, he/she can post it on More-Recipes and get feedback in form of reviews and votes from other users who explore that recipe. Users can also keep a list of their favorite recipes on the appli…

License

Notifications You must be signed in to change notification settings

fuchodeveloper/more-recipes

Repository files navigation

more recipes logo

Build Status Coverage Status Maintainability

More-recipes

More-Recipes provides a platform for users to share the awesome and exciting recipe ideas they have invented or learnt. Suppose a user comes up with a recipe, he/she can post it on More-Recipes and get feedback in form of reviews and votes from other users who explore that recipe. Users can also keep a list of their favorite recipes on the application.

More-recipes App: here

How it works

  • Users can view various recipes on the application by visiting the app homepage page
  • Users can add recipes to the app, but first the user needs to create a new account or sign in
  • Authenticated users can do the following on the app:
    • Add a recipe
    • View or modify the recipe he/she added
    • Delete the recipe he/she added
    • Retrieve recipes from the catalog
    • Modify a recipe in the catalog, including upvoting, downvoting, favoriting
    • Delete a recipe from the catalog
    • Retrieve favorited recipes from the catalog
    • Add a review to a recipe
    • Retrieve recipes with the most upvotes
    • Search for recipes

Technologies used

Core Technology Stacks

  • Front-end: React/Redux + SASS/Bootstrap
  • Back-end: Expressjs + Sequelize
  • Libraries: jsonwebtoken, Babel, eslint, Mocha/Chai + chai-http, jest, enzyme
  • System Dependencies: Node + PostgreSQL

Folder Structure

  • client: contains React/Redux implementation of the frontend
  • server: contains the project API created using Node/express + Sequelize/postgreSQL, and tests
  • template: contains the UI design with HTML/CSS/BOOTSTRAP

Getting Started

  • Clone project repo - git clone https://github.com/fuchodeveloper/more-recipes.git
  • Ensure you have installed NodeJS and Postgres
  • Navigate into the application root directory: cd more-recipes
  • Setup PostgresSQL on your local machine or Use ElephantSql
  • Run $ npm install to install all dependencies
  • Install sequelize-cli, Run $ npm install -g sequelize-cli (NB: May require sudo priviledges)
  • Create a .env file in the root directory using the sample .env.sample file
  • setup your database configurations according to settings in server/config/config.js
  • Run $ sequelize db:migrate
  • Run tests using $ npm run test:dev

How to Demo/Run the App

  • To start the app in development, run: npm run start:dev
  • To start the app in a production environment, run: npm start

API Endpoints


Request End Point Action
POST /api/v1/users/signup Create an account
POST /api/v1/users/signin Login to the app
POST /api/v1/recipes Create a new recipe
DELETE /api/v1/recipes/:id Delete a recipe you created
PUT /api/v1/recipes/:id Modify Recipe information
POST /api/v1/recipes/:id/upvote Upvote a recipe
POST /api/recipes/:id/reviews Post a review
POST /api/v1/recipes/:id/upvote Upvote a recipe
POST /api/v1/recipes/:id/downvote Downvote a recipe
POST /api/v1/users/:id/recipes Favorite a recipe
GET /api/v1/users/:id/recipes Get all your favorite recipes
GET /api/recipes/:id Get a recipe
GET /api/recipes Get all recipe
GET /api/recipes?sort=upvotes&order=des Gets recipe with most Upvotes

More recipes API documentation - here

Contributing

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

Wiki

Visit the wiki here for more information about the conventions used in this project

To get started:

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

License

Author(s)

About

More-Recipes provides a platform for users to share the awesome and exciting recipe ideas they have invented or learnt. Suppose a user comes up with a recipe, he/she can post it on More-Recipes and get feedback in form of reviews and votes from other users who explore that recipe. Users can also keep a list of their favorite recipes on the appli…

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published