Проект YaMDb представляет собой платформу для сбора отзывов пользователей на различные произведения. Здесь пользователи могут выражать свои впечатления о книгах, фильмах, музыке и других произведениях. Произведения не хранятся в YaMDb, но здесь формируется обширная коллекция отзывов и рейтингов.
Произведения разделены на категории, такие как "Книги", "Фильмы", "Музыка". К примеру, в категории "Книги" могут входить произведения как "Винни-Пух и все-все-все" и "Марсианские хроники". Категории могут быть расширены по мере необходимости, например, добавлением "Изобразительного искусства" или "Ювелирки".
Каждому произведению может быть присвоен жанр из предустановленного списка, такого как "Сказка", "Рок" или "Артхаус". Только администратор имеет право добавлять новые произведения, категории и жанры.
Пользователи выражают свои эмоции о произведениях через текстовые отзывы и ставят оценку в диапазоне от одного до десяти. Из пользовательских оценок формируется усредненная оценка произведения — рейтинг.
Пользователи могут обсуждать произведения, оставляя комментарии к отзывам.
Добавление отзывов, комментариев и оценок возможно только для аутентифицированных пользователей. Техническая документация по API YaMDb доступна по адресу http://127.0.0.1:8000/redoc/.
- auth: Аутентификация.
- users: Пользователи.
- titles: Произведения, к которым пишут отзывы (фильмы, книги, музыка).
- categories: Категории (типы) произведений (фильмы, книги, музыка).
- genres: Жанры произведений.
- reviews: Отзывы на произведения.
- comments: Комментарии к отзывам.
Для запуска проекта выполните следующие шаги:
# Создайте виртуальное окружение
python -m venv venv
# Активируйте виртуальное окружение
# - linux
source /venv/bin/activate
# - windows
source /venv/Script/activate
# Установите зависимости
pip install -r requirements.txt
# Выполните миграции
python manage.py migrate
# Запустите сервер
python manage.py runserver
# Команда import_csv принимает 1 позиционный аргумент.
# Название файла должно точно совпадать с названием таблицы,
# так же названия колонок не должны отличаться от колонок в базе данных
python manage.py import_csv [путь к каталогу с файлами в проете]