Проект представляет из себя небольшую социальную сеть, в которой пользователи могут делиться с другими пользователями рецептами на все случаи жизни. В проекте доступны следующие возможности:
- Публикация рецептов с выбранными ингредиентами
- Подписка на других пользователей
- Добавление рецептов в избранное
- Создание списка покупок
- Загрузка списка покупок в виде текстового файла с перечислением необходимых ингредиентов для всех выбранных рецептов
Взаимодействие с бэкендом происходит на базе API. Для аутентификации используется токен. Предоставляет данные в формате JSON. Аутентифицированный пользователь может создавать и редактировать рецепты, подписываться на пользователей, добавлять рецепты в избранное и создавать список покупок. Неаутентифицированный пользователь имеет доступ только к GET запросам.
- Python
- Django
- Django REST Framework
- Djoser
- React
- Gunicorn
- Nginx
- PostgreSQL
- Docker
- CSS
- HTML
- Клонировать проект с помощью команды
git clone - Создать в папке с проектом виртуальное окружение с версией Python 3.7, 3.8 или 3.9
- Внести данные в файл переменных окружения (.env) в нижеизложенном формате
- Активировать виртуальное окружение
- Установить и настроить Docker Dekstop
- Находясь в папке проекта использовать команды:
pip install -r requirements.txtdocker-compose build -f docker-compose.production.ymldocker-compose up -f docker-compose.production.yml
- В отдельном терминале выполнить команды:
docker ps- для отображения запущенных контейнеровdocker exec -it container_id python manage.py migrate- в качествеcontainer_idдолжен быть указан айди контейнера бэкенда
- Загрузить статику с помощью команды:
docker exec -it container_id python manage.py collectstatic
- Импортировать данные для моделей ингредиента и тэга с помощью команды:
docker exec -it container_id python manage.py csv_import- в качествеcontainer_idдолжен быть указан айди контейнера бэкенда
- Клонировать проект с помощью команды
git clone - Внести данные в файл переменных окружения (.env) в нижеизложенном формате на сервере в папке проекта
- Установить и настроить на сервере nginx, docker и сертификат https.
- Скопировать файл docker-compose.production.yml в корневую директорию проекта на сервере
- Добавить секреты в GitHub Actions в нижеизложенном формате
- Запушить репозиторий в свой аккаунт
POSTGRES_USER=имя пользователя
POSTGRES_PASSWORD=пароль пользователя
POSTGRES_DB=имя базы данных
DB_HOST=адрес, по которому Django будет соединяться с базой данных. При работе нескольких контейнеров в сети Docker network вместо адреса указывают имя контейнера, где запущен сервер БД
DB_PORT=порт, по которому Django будет обращаться к базе данных. 5432 — это порт по умолчанию для PostgreSQL
SECRET_KEY=большое случайное число, применяемое для защиты от CSRF
DEBUG=значение должно быть True, если необходимо запустить проект в режиме дебага
ALLOWED_HOSTS=список хостов/доменов, для которых может работать текущий сайт. Указывать без пробелов через запятую
USE_SQLITE=значение должно быть True, если необходимо запустить проект с БД SQLite. В противном случае будет использован PostgreSQLDOCKER_USERNAME логин пользователя в Docker
DOCKER_PASSWORD пароль пользователя в Docker
DOCKER_NICKNAME имя пользователя в Docker
HOST IP-адрес сервера
USER имя пользователя на сервере
SSH_KEY приватный ssh-ключ
SSH_PASSPHRASE пароль приватного ssh-ключаС развёрнутым проектом можно ознакомиться по ссылке Документация API находится по ссылке
Владимир Минеев (https://github.com/Atrocraz)