More-Recipes provides a platform for users to share the awesome and exciting recipe ideas they have invented or learnt.
- JSON Web Token (JWT) is used to authenticate users.
- The API creates a token everytime a user logs in.
- The user supplies the token created, which is verified by the API before the user can access certain protected endpoints.
- New users can sign up.
- Signed up users can login and get an authentication token.
- Users can update their details
- Authenticated users can create recipe.
- Authenticated users can edit/modify their recipe.
- Authenticated users can view all recipe.
- Authenticated users can delete only the recipe they created
- Authenticated users can post review for a recipe
- Authenticated users can up vote or down vote a recipe
- Authenticated users can add or remove recipe from their favourite
- Users will get notification if their favourite recipe get modified
- Authenticated users can search for and retrieve any recipes based on the recipe title or ingredients
Click here to access the application. Or download or clone this repository and run it on your machine.
- If you don't have NodeJS already installed go here and install it.
- Clone this repository by running
git clone https://github.com/chibuezeayogu/Cohort-XXVI_More-RecipesApp.git
on your terminal.- Navigate into the cloned project directory.
- For example, if you cloned the project into the desktop directory, then run cd desktop which takes you into the desktop, then
cd Cohort-XXVI_More-RecipesApp
to enter the project directory. - Once in the project directory, install all project dependencies by running
npm install
. - Create
.env
file and copy content of.env.sample
to it and provide the appropriate values specified - Run the command
sequelize db:migrate
to migrate db model - Run the command
npm run start:dev
to start the application. - To run tests, run the command
npm test
.
- The API Documentation can be found here
NodeJS:
is an open-source, cross-platform JavaScript run-time environment for executing JavaScript code server-side.
es6(ECMAScript 2015)
: es6 is the sixth major release of the javascript language specification. It enables features like constants, arrow functions, template literals, etc.
Express
: Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
Postgres
: PostgreSQL is a powerful, open source object-relational database system. It is used to persist dockument API's data.
Babel
: Babel is used to transpile es6 down to es5.
Sequelize
: Sequelize is a promise-based Obect Relational Mapper (ORM) for Node.js and io.js.
Mocha
: Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun. Mocha is the testing framework used to test the API's functionalities.
Please read this for details on code of conduct, and the process for submitting pull requests to me.
- Fork this repository by clicking the Fork menu item in the top right corner of this repository.
- Go to your github account, and under your repository list, you should find this project listed.
- Open the project, click on the clone or download button, then copy the url that pops up.
- Open your terminal and run the command git clone url where url is the url from the previous step.
- Navigate into the cloned project directory.
- For example, if you cloned the project into the desktop directory, then run cd desktop which takes you into the desktop, then
cd Cohort-XXVI_More-RecipesApp
- to enter the project directory.
- Once in the project directory, install all project dependencies by running npm install.
- Create your feature branch on your local machine by running
git checkout -b branchName
, where branchNameis the name of your feature branch. - Make your changes.
- Add your changes by running git add filePath, where filePath is path of the file(s) in which the change(s) were made.
- Commit your changes by running
git commit -m "commit message"
. - Push your changes to your remote branch by running
git push origin branchName
. - Open a pull request to the staging branch.
JSON Web Token (JWT): JWT is an open standard that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. JWT is used for secure login.
- Users can only sign with their email and password.
- Users will be able to access the full application functionalities only if they are logged in
- This project is authored by Ayogu Chibueze Nelson, and is licensed for use, distribution and modification under the ISC license