Проект API YaMDb реализует API для сбора отзывов пользователей на произведения.
- О проекте
- Начало работы
- Использование
- Планы
- Использованные средства и технологии
- Авторы
- Благодарности
API YaMDb с Docker - это проектная работа шестнадцатого спринта курса "Python-разработчик" Яндекс.Практикум.
Этот проект реализует API будущего сайта, представляющего собой сервис по работе с произведениями и использует Docker для разделения из запуска сервисов.
Произведения делятся на категории:
- Книги,
- Фильмы,
- Музыка.
Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы и ставят произведению оценку в диапазоне от одного до десяти. Из пользовательских оценок формируется усреднённая оценка произведения — рейтинг.
Для работы приложения используется docker compose с разделением на три сервера:
- db - с базой данных;
- web - с сайтом;
- nginx - c Nginx.
Для разворачивания проекта на сервере используется GitHub Actions. В процессе CI производится:
- тестирование;
- сборка Docker-образа и заливка на DockerHub;
- деплой на сервер;
- уведомление в Telegram.
Для работы с проектом необходимо выполнить действия, описанные ниже.
- Клонировать репозиторий и перейти в него в командной строке:
git clone git@github.com:iReset/infra_sp2.git
cd infra_sp2/infra
При необходимости заполнить поля в .env-файле актуальными данными.
Запустить docker compose:
docker compose up -d --build
Выполнить формирование статики и базы данных:
docker compose exec web python manage.py collectstatic --no-input
docker compose exec web python manage.py migrate
При необходимости заполнить БД тестовыми данными:
docker compose exec web python manage.py import_data
и создать учетную запись администратора:
docker compose exec web python manage.py createsuperuser
Для получения документации по API необходимо открыть в браузере адрес http://127.0.0.1/redoc/.
Панель администратора доступна по адресу http://127.0.0.1/admin/.
Боевая версия ограниченное время будет доступна по адресам ireset.ddns.net или 51.250.25.254.
- Объединить проект API с бекэндом сайта.
- Добавить автозапуск на сервере и перезапуск при падении.
- Добавить тестирование на GitHub при пуше в develop.
- iReset — управление пользователями (Auth и Users): система регистрации и аутентификации, права доступа, работа с токеном, система подтверждения через e-mail, Docker, CI, CD
- HelloAgni — категории (Categories), жанры (Genres) и произведения (Titles): модели, представления и эндпойнты для них
- Valery-VM — отзывы (Review) и комментарии (Comments): описание моделей, представлений, настройка эндпойнтов, определение прав доступа для запросов, рейтинги произведений
- Спасибо команде Яндекс.Практикум за создание курса
- Спасибо наставникам Денису Московченко, Алексею Михайлову и старшему студенту Антону Базуленкову за терпеливые и подробные разъяснения
- Спасибо куратору Екатерине Чапля за неустанную поддержку и организацию работы
- Спасибо команде когорты 28 за поддержку и сопровождение
- Спасибо однокурсникам когорты 28 за дружную команду