Проект YaMDb собирает отзывы (Review) пользователей на произведения (Titles). Произведения делятся на категории: "Книги", "Фильмы", "Музыка". Список категорий (Category) может быть расширен администратором.
Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку.
В каждой категории есть произведения: книги, фильмы или музыка. Например, в категории "Книги" могут быть произведения "Винни Пух и все-все-все" и "Марсианские хроники", а в категории "Музыка" — песня "Давеча" группы "Насекомые" и вторая сюита Баха.
Произведению может быть присвоен жанр (Genre) из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»). Новые жанры может создавать только администратор.
Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы (Review) и ставят произведению оценку в диапазоне от одного до десяти (целое число); из пользовательских оценок формируется усреднённая оценка произведения — рейтинг (целое число). На одно произведение пользователь может оставить только один отзыв.
-
Ресурс auth: аутентификация.
-
Ресурс users: пользователи.
-
Ресурс titles: произведения, к которым пишут отзывы (определённый фильм, книга или песенка).
-
Ресурс categories: категории (типы) произведений («Фильмы», «Книги», «Музыка»).
-
Ресурс genres: жанры произведений. Одно произведение может быть привязано к нескольким жанрам.
-
Ресурс reviews: отзывы на произведения. Отзыв привязан к определённому произведению.
-
Ресурс comments: комментарии к отзывам. Комментарий привязан к определённому отзыву.
-
Аноним — может просматривать описания произведений, читать отзывы и комментарии.
-
Аутентифицированный пользователь (user) — может читать всё, как и
-
Аноним, может публиковать отзывы и ставить оценки произведениям (фильмам/книгам/песенкам), может комментировать отзывы; может редактировать и удалять свои отзывы и комментарии, редактировать свои оценки произведений. Эта роль присваивается по умолчанию каждому новому пользователю.
-
Модератор (moderator) — те же права, что и у Аутентифицированного пользователя, плюс право удалять и редактировать любые отзывы и комментарии.
-
Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.
-
Суперюзер Django должен всегда обладать правами администратора, пользователя с правами admin. Даже если изменить пользовательскую роль суперюзера — это не лишит его прав администратора. Суперюзер — всегда администратор, но администратор — не обязательно суперюзер.
Для запуска приложения проделайте следующие шаги:
-
Склонируйте репозиторий.
-
Перейдите в папку с кодом и создайте виртуальное окружение:
python -m venv venv
- Активируйте виртуальное окружение:
source venv\scripts\activate
- Установите зависимости:
python -m pip install -r requirements.txt
- Выполните миграции:
python manage.py migrate
- Создайте суперпользователя:
python manage.py createsuperuser
- Запустите сервер:
python manage.py runserver
Проект запущен и доступен по адресу: localhost:8000
Чтобы загрузить таблицы из csv в базу данных:
python manage.py load_csv --all
Чтобы очистить базу данных:
python manage.py load_csv --clear
Марк Губин - первый разработчик, разработал всю часть, касающуюся управления пользователями (Auth и Users): систему регистрации и аутентификации, права доступа, работу с токеном, систему подтверждения через e-mail.
Артём Ширнин - второй разработчик, описал категории (Categories), жанры (Genres) и произведения (Titles): модели, представления и эндпойнты для них.
Михаил Шутов - третий разработчик, создал отзывы (Review) и комментарии (Comments): описал модели, представления, настроил эндпойнты, определил права доступа для запросов. Рейтинги произведений, а также реализация механизма импорта данных из csv файлов, тоже его рук дело.