Сервис для публикации кулинарных рецептов. Пользователи могут создавать свои или добавлять чужие рецепты в избранное, подписываться на других авторов, а также создавать и скачивать в формате PDF список продуктов, необходимых для приготовления отобранных блюд.
В ходе проекта было разработано:
- backend приложение на Django REST
- Django Unit Tests покрывающие функционал приложения
- CI/CD посредством Docker и GitHub Actions
- Python
- Django
- Django REST Framework
- Unittest
- Nginx
- PostgreSQL
- Docker
- Github Actions
- pep8
- flake8
- black
- pymarkdown
- mypy
-
На сервере создайте директорию
foodgram
и внутри неё - файл.env
имеющий формат:SECRET_KEY=КЛЮЧ CSRF_TRUSTED_ORIGINS=your_server_address HOSTS=hostname_1, hostname_2 DB_ENGINE=django.db.backends.postgresql DB_NAME=ИМЯ БАЗЫ ДАННЫХ POSTGRES_USER=ИМЯ ПОЛЬЗОВАТЕЛЯ БД POSTGRES_PASSWORD=ПАРОЛЬ БД DB_HOST=postgres_db DB_PORT=5432
-
Скопируйте из репозитория директории
infra
иdocs
вfoodgram
-
В директории
infra
выполните команды:docker-compose up -d docker-compose exec backend python manage.py makemigrations docker-compose exec backend python manage.py migrate docker-compose exec backend python manage.py collectstatic docker-compose exec backend python manage.py createsuperuser
-
Для наполнения БД тестовыми данными используйте команду:
docker compose exec backend python manage.py importcsv
-
После запуска оркестра контейнеров сервис будет доступен по IP адресу вашего сервера. Добавление данных возможно через frontend для зарегистрированных пользователей, а также через админ-зону Django. Документация API расположена:
адрес_вашего_сервера/api/docs