More-recipesApp
This is a full stack application that enables users share exciting recipes, it also comes with other amazing features.
View Production App Here: [https://still-mesa-59950.herokuapp.com/]
- Front-end: React/Redux + Bootstrap
- Back-end: Expressjs + Sequelize
- System Dependencies: Node + Postgres
client
: contains React/Redux implementationserver
: contains the project API developed in Node/express + Sequelize/postgres
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.
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
andnpm 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
thennpm run start
- 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
- Front-end: Jest
- Back-end: Mocha/Chai, expect, supertest
The limitations with this current version of More-recipesApp includes:
- Authenticated users cannot view the profile of other users
- Authenticated users cannot disable account
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
- view Frequently Asked Questions here