The eKitchen APP Backend API is a backend project designed to support a recipe management application. It is ready for deployment with Docker and includes GitHub Actions for continuous integration and automated deployment. The API enables users to perform essential operations such as creating accounts, managing recipes, adding tags, and managing ingredients. It also supports secure user authentication, image uploads, and seamless integration with production-ready tools.
- User Authentication: Secure user registration and login using token-based authentication.
- Recipe Management: Create, update, and delete recipes.
- Ingredient Management: Add and manage ingredients linked to recipes.
- Tagging System: Organize recipes with customizable tags.
- Image Uploads: Attach images to recipes for better visualization.
- Programming Language: Python
- Framework: Django, Django REST Framework (DRF)
- Database: PostgreSQL
- Testing: unittest library
- Containerization & Deployment: Docker, Docker Compose, Nignx
- CI/CD: GitHub Actions
Follow these steps to set up and run the project locally.
- Only Docker & Docker Compose
-
Clone the Repository
git clone https://github.com/ObsisMc/eKitchen.git cd eKitchen -
Build Docker Containers
docker-compose build
-
Apply Migrations
docker-compose run --rm app sh -c "python manage.py migrate" -
Run the Application
# run docker-compose up # close docker-compose down
-
Create a Superuser (optional)
docker-compose run --rm app sh -c "python manage.py createsuperuser"
The API will be available at http://localhost:8000.
- Swagger API Page: http://localhost:8000/api/docs
- Admin Page (optional): http://localhost:8000/admin
This project is deployment-ready with Docker and GitHub Actions configured for CI/CD.
1.Set .env
Create your own .env
cp .env.sample .env-
Build Docker Images Ensure Docker is set up on your deployment server and build the images:
docker-compose -f docker-compose-deploy.yml build
-
Run Containers Start the application in detached mode:
docker-compose -f docker-compose-deploy.yml up -d
-
Create a Superuser (optional)
docker-compose run --rm app sh -c "python manage.py createsuperuser"
The API will be available at http://your_DJANGO_ALLOWED_HOSTS:8000.
- Swagger API Page: http://your_DJANGO_ALLOWED_HOSTS:8000/api/docs
- Admin Page (optional): http://your_DJANGO_ALLOWED_HOSTS:8000/admin