Recipe API Project
This is a Backend Restapi application that has been developed on Django and deployed on AWS using Docker containers.
- Description
- Behaviour Driven Development
- Installation Requirement
- Technology Used
- Reference
- Licence
- Authors Info
- Live Link
An application where users can access the backend restapis on Swaager documentation . The api's use token authentication . To access the api's : The user has to .
- Click on the project Link .
- Create a user under the api/user/me restapi .
- Generate a user token under the restapi /api/user/token/ .
- Copy the token and paste it under the authorize tab at the top of the page in the section Token . For example Token jghghjj25143563778 .
- Now the user has access to all the endpoints and documentation .
- A user can upload / delete / edit and create a recipe .
- A user can upload / delete / edit and create an ingredient for a recipe .
- A user can create their own accounts .
- A user can view recipes uploaded by others .
- A user can upload photos of recipes.
-
Open Terminal
ctrl+Alt+T
or
- Git fork - Enter into your own repository and search-https://github.com/Nobella-Nyarari-Ejiofor/SnapPark then click on fork to add it on your own repository.
Navigate into the cloned project.
cd Recipe
-
Create and activate the vitual Environment and install the from requirements.txt
$ python3.6 -m virtualenv virtual
$ source virtual/bin/activate
$ pip install -r requirements.txt
-
Setting up environment variables
Create an .env
and add the following.
SECRET_KEY='<Secret_key>'
DBNAME='tribune'
USER='<Username>'
PASSWORD='<password>'
DEBUG=True
EMAIL_USE_TLS=True
EMAIL_HOST='smtp.gmail.com'
EMAIL_PORT=587
EMAIL_HOST_USER='<your-email>'
EMAIL_HOST_PASSWORD='<your-password>'
requirements.txt
-
Start the Server to run the app
-
$ python3.6 manage.py runserver
-
Open localhost:8000
-
Either a computer,phone,tablet or an Ipad
-
An access to the Internet
-
Python3
-
Postgres
-
virtualenv
*Pip
-
Python/Django - Which was used to build the web-applications.
-
Swagger - For the api documentation .
-
Postgresql - For the database
-
Heroku - For deployment
-
Flake8 - For liniting .
-
Github Workflows- Create a CI/CD pipeline.
-
Docker - For placing application in containers .
-
Postgresql - For the database
-
AWS - The cloud platform where the container runs.
- LMS