REST API для сервиса YaMDb — базы отзывов о фильмах, книгах, музыке и того, о чем можно написать отзыв. (Совместный проект студентов Яндекс.Практикум)
Рабочий проект находится по адресу https://www.yamdb.praktikum.ga/
Проект написан в команде из трех разработчиков.
Код приложения написан на Python.
Для работы с данными применены фреймворки Django, Django rest framework, в том числе регистрация осуществляется через Simple JWT.
Для хранения и управления данными проекта используется СУБД PostgreSQL упакованная в контейнер docker postgres docker.
Для сборки контейнеров и развертывания приложений применен Docker и Docker-Compose.
Список использованных инструментов можно посмотреть в файле requirements.txt .
Для развернывания приложения необходимо установить Docker и Docker-Compose
Проект YaMDb собирает отзывы (Review) пользователей на произведения (Title). Произведения делятся на категории: «Книги», «Фильмы», «Музыка». Список категорий (Category) может быть расширен (например, можно добавить категорию «Изобразительное искусство» или «Ювелирка»).
Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку.
В каждой категории есть произведения: книги, фильмы или музыка. Например, в категории «Книги» могут быть произведения «Винни Пух и все-все-все» и «Марсианские хроники», а в категории «Музыка» — песня «Давеча» группы «Насекомые» и вторая сюита Баха. Произведению может быть присвоен жанр из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»). Новые жанры может создавать только администратор. Благодарные или возмущённые читатели оставляют к произведениям текстовые отзывы (Review) и выставляют произведению рейтинг (оценку в диапазоне от одного до десяти). Из множества оценок автоматически высчитывается средняя оценка произведения.
Клонируйте репозиторий на локальную машину.
git clone https://github.com/sorochinskii/yamdb_final
В директории проекта находится файл .env.example, в котором описаны все нужные переменные и их примерные значения. В этой же директории необходимо создать файл .env с актуальными значениями переменных.
Запустите процесс сборки и запуска контейнеров. Для запуска в фоновом режиме примените ключ -d
docker-compose up
Запустите терминал внутри контейнера (команду необходимо выполнить в папке с файлом docker-compose.yaml)
docker-compose exec web bash
Проведите миграцию для переноса моделей django на структуру базы данных
python manage.py migrate
Для работы с админкой django необходимо создать суперпользователя
python manage.py createsuperuser
Возможно загрузить в базу данных тестовые данные
python manage.py load_fixtures
Остановить работу и удалить контейнеры можно командой
docker-compose down
Руслан Фатхутдинов. Управление пользователями: система регистрации и аутентификации, права доступа, работа с токеном, система подтверждения e-mail, поля.
Михаил Кудинов. Категории, жанры и произведения: модели, view и эндпойнты для них.
Александр Сорочинский. Отзывы и комментарии: модели и view, эндпойнты, права доступа для запросов. Рейтинги произведений.