The Recipe-App API powers a recipe management application. It allows users to manage recipes, ingredients, tags, and user profiles. The API supports Docker-based setup, GitHub Actions for CI/CD, and includes endpoints for user management, image uploads, and more. It also includes comprehensive unit tests to ensure reliability.
- User authentication and management
- Recipe management (CRUD operations)
- Ingredient management (CRUD operations)
- Tag management (CRUD operations)
- Image upload for recipes
- Comprehensive unit testing
To get started with the Recipe-App API, you can clone the repository and follow the installation steps below.
- Clone the repository to your local machine:
$ git clone https://github.com/iam-madukapaul/recipe-app-api.git
$ cd recipe-app-apiThe project supports Docker for easy setup and development. Follow the steps below to run the project using Docker.
- Make sure you have Docker installed on your system.
- In the root of the repository, build the Docker image:
$ docker-compose build- After building the Docker images, you should create any necessary database migrations for the application:
$ docker-compose run --rm app sh -c "python manage.py makemigrations"- To start the application, run the following command:
$ docker-compose up- The application will now be available at http://127.0.0.1:8000
The project includes unit tests to ensure the API is functioning as expected.
- To run the tests inside the Docker container, use the following command:
$ docker-compose run --rm app sh -c "python manage.py test"This project is integrated with GitHub Actions for Continuous Integration and Continuous Deployment (CI/CD). The GitHub Actions workflow will run automatically on every push to the repository, ensuring that the API is tested, built, and deployed without manual intervention.
Contributions are welcome! If you'd like to contribute to the Recipe-App API, please follow these steps:
- Fork the repository.
- Create a new branch (git checkout -b feature-name).
- Make your changes.
- Commit your changes (git commit -am 'Add new feature').
- Push to the branch (git push origin feature-name).
- Create a new pull request.
At the time of development, this project was deployed on AWS. As such, there are some AWS-specific deployment configurations within the code to support cloud deployment.
Please note that the deployment setup may need to be adjusted based on your environment, but this project was originally designed with AWS in mind.

