Code Monkey home page Code Monkey logo

recipe-app-api's Introduction

recipe-app-api

Recipe API project on DJANGO

http://ec2-18-222-194-81.us-east-2.compute.amazonaws.com/api/docs/


Description

This a Django web application that provides an API for managing recipes. The key steps and stages of development include:

  • User Model Creation: You created a user model that allows user registration and authentication.

  • Adding User Avatar: Extended user capabilities by allowing the upload and storage of avatars.

  • Recipe Management: Implemented functionality for adding, viewing, and editing recipes.

  • Fixes and API Enhancement: Addressed issues, added functionality, and expanded API capabilities for recipes.

  • Adding Images to Recipes: Implemented the ability to upload and store images for each recipe.

  • Configuration and Extension of Django Admin Interface: Configured the Django admin interface for more convenient user and recipe management.

  • Fixes and API Enhancement: Addressed issues, added functionality, and expanded API capabilities for recipes.

  • Recipe Filtering by Tags and Ingredients: Added the ability to filter recipes by tags and ingredients for convenient searching.

  • Django Admin Interface Customization: Customized the Django admin interface to improve the management and usability of user models.

  • API Documentation: Configured API documentation using drf-spectacular for better understanding and interaction with the API.

  • Deployment on AWS EC2: Deployed the project on an AWS EC2 server using Docker and configured necessary settings.

  • GitHub Deploy Key Setup: Set up a deploy key on GitHub for secure access to the repository from the EC2 instance.

  • AWS Account and User Setup: Created an AWS account, set up a user with appropriate permissions, and configured multi-factor authentication (MFA).

  • SSH Key Upload to AWS: Generated and uploaded an SSH key to AWS for secure access to EC2 instances.

  • Docker, Compose, and Git Installation: Installed Docker, Docker Compose, and Git on the EC2 instance for project deployment.

  • Clone and Configure Project: Cloned the project from GitHub, configured environment variables, and set up the project for execution.

  • Service Execution: Ran the Docker Compose command to start the services, allowing access to the application.

  • Documentation Update: Documented steps for setting up Docker, Compose, Git, cloning the project, and running the service.

  • Django Admin Customization: Customized the Django admin interface for better management of users.

  • URL Configuration: Updated URL configuration to include API schema and documentation endpoints.

This comprehensive development process results in a fully functional recipe management application with an API, user authentication, and enhanced administrative capabilities.


Stages of development



Setup

For run on local machine:

  1. Git clone.
  2. docker build .
  3. docker-compose build
  4. docker-compose up
  5. docker-compose run --rm app sh -c "flake8"

For AWS EC2:

ssh [email protected]
cd recipe-app-api
git pull origin

docker-compose -f docker-compose-deploy.yml build app

To view container logs, run:

docker-compose -f docker-compose-deploy.yml logs

To apply the update, run:

docker-compose -f docker-compose-deploy.yml up --no-deps -d app

The --no-deps -d ensures that the dependant services (such as proxy) do not restart.

For more detailed information see: 13.Deployment.md


Screenshot:

3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png

recipe-app-api's People

Contributors

stupns avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.