more-recipes
A Full-Stack web application built for users to share their awesome and exciting recipes ideas they have learnt or have invented
Technologies
API Documentation
The full documentation for all api end point can be found here
Functionalities
Users are grouped into two categories registered users and non registered user, functionalities for each category are listed below
Non registered Users
- Create an account
- Sign in as a user
Registered Users
- View Recipes
- Create New recipe
- Update created recipes
- Delete recipe created
- Add recipes to their favorites list
- Upvote a recipe
- downvote a recipe
- Review a recipe
- Update profile
Limitations
This project has some limitations. The most notable ones are:
- Users can not view other user's profile or see their personal/favorite recipe list.
- Users can not change their password or reset it if forgotten.
- Users cannot deactivate their accounts
- Users need to obtain authentication token every 2 hours.
- Only authenticated users are allowed to use the app
How to Install
- Clone the repo and enter directory
git clone git@github.com:williamolojede/more-recipes.git && cd more-recipes
- Install the project's dependecies
npm install
- Create
.env
file and copy content of.env.sample
to it and provide the appropriate values
cp .env.sample .env
- Take a look at config.json and read this to setup postgres/sequelize to create a db then run migration
npm run migrate
- Finally, start the server
npm run start:dev
Demo
View the web client live here
Test
This app uses the following for testing:
- For Backend testing run
npm run test:server:dev
. - For frontend testing run
npm run test:client
- For end-to-end test run
npm run test:e2e
Contributing to the project
- Fork this repository to your github account
- Clone the repository -
git clone https://github.com/{your_username_goes_here}/dman.git
- Create your feature branch -
git checkout -b {feature, chore or bug}-short_feature_desscription
- Commit your changes -
git commit -m “{commit_message_goes_here}“
orgit commit
for the interactive interface - Push to the remote branch -
git push origin {your_branch_name_as_described_above}
- Open a pull request
FAQ
What language was used to develop this application?
This is a full stack javascript application
Who can contribute?
Anyone!
Author
William Olojede(@williamolojede — william.ng)
License
This is licensed for your use, modification and distribution under the MIT license.