Skip to content

Latest commit

 

History

History
74 lines (59 loc) · 2.38 KB

README.md

File metadata and controls

74 lines (59 loc) · 2.38 KB

Python Django Django Rest Framework Docker Gunicorn NGINX PostgreSQL Yandex Cloud

Foodgram Webservice

Foodgram is a diploma project from the Yandex Practicum Python Backend course designed for food enthusiasts to share and discover recipes. The project is built using practical, industry-standard tools to provide a straightforward and effective user experience.

Technical Overview

  • Backend: Django (Python)
  • Frontend: React
  • Server: Gunicorn with Nginx
  • Deployment: Docker

Key Features

  • Recipe Sharing: Post your recipes for others to enjoy.
  • Favorites: Save recipes you love for easy access later.
  • Shopping Cart: Add ingredients to your cart and download a shopping list with one click.
  • Subscriptions: Follow other users and see their recipes conveniently on a dedicated page.

Available Endpoints

  • API Endpoint: /api/ - Access the recipe data, tags, ingredients, user info.
  • Admin Interface: /admin/ - Manage the platform (demo login: [email protected] / Gfhjkm12345)

Demo

Try Foodgram at: https://myfoodgram.zapto.org/


Local Installation Guide

Explore Foodgram on your local machine by following these steps:

  1. Clone the repository:
[email protected]:thehallowedfire/foodgram-project-react.git
  1. Navigate into the directory:
cd foodgram-project-react
  1. Rename demo.env file into .env. Populate it with your data (optional; do not change DB_HOST and DB_PORT values).
  2. Navigate into infra directory:
cd infra
  1. Compose Docker container (Docker should be installed on your local machine):
docker compose up
  1. Apply migrations (in a separate Bash window navigate to the same folder and follow the next steps):
docker compose exec backend python manage.py makemigrations
docker compose exec backend python manage.py migrate
  1. Import ingredients:
docker cp ./data infra-backend-1://../backend_static
docker compose exec backend python manage.py add_ingredients
  1. Create superuser:
docker compose exec backend python manage.py createsuperuser
  1. Enter admin zone with admin credentials (you just created it)
  2. Create 3 tags.
  3. Now you can explore the site on http://localhost:7000/

Author

Vladislav Kondrashov GitHub Telegram