/api_yamdb

API YaMD – финальный проект (10 спринт), который собирает отзывы пользователей на различные художественные произведения при помощи API.

Primary LanguagePython

YaMDb

Быстрая установка

Устанавливаем нужные зависимости, если их нет (нужны пакеты wget и unzip).

Если их нет, введите команды ниже.

# для Fedora Linux
sudo dnf install wget unzip -y

# для Ubuntu/Debian Linux
sudo apt-get install wget unzip -y

Если нужно обновить pip, введите:

python -m pip install --upgrade pip

Перейдите в подготовленную директорию в терминале и запустите следующую команду - скрипт всё сделает за вас:

wget -q https://raw.githubusercontent.com/budaevdigital/api_yamdb/master/fast-install-linux.sh -O - | bash

Вот так быстро и лего...

Screencast

Описание

Проект YaMDb создан в рамках выполнения 10 спринта в Яндекс Практикум.

YaMDb собирает отзывы пользователей на различные произведения.

  • Произведения делятся на категории: «Книги», «Фильмы», «Музыка».
  • Произведению может быть присвоен жанр из списка предустановленных.
  • Пользователи могут оставить к произведениям текстовые отзывы и поставить произведению оценку в диапазоне от одного до десяти, из пользовательских оценок формируется усреднённая оценка произведения — рейтинг. На одно произведение пользователь может оставить только один отзыв.

Роли и права пользователей

В проекте YaMDb реализована ролевая модель управления доступами. Доступные роли и права пользователей:

  • Аноним — может просматривать описания произведений, читать отзывы и комментарии.
  • Аутентифицированный пользователь (user) — может читать всё, как и Аноним, может публиковать отзывы и ставить оценки произведениям (фильмам/книгам/песенкам), может комментировать отзывы; может редактировать и удалять свои отзывы и комментарии, редактировать свои оценки произведений. Эта роль присваивается по умолчанию каждому новому пользователю.
  • Модератор (moderator) — те же права, что и у Аутентифицированного пользователя, плюс право удалять и редактировать любые отзывы и комментарии.
  • Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.
  • Суперюзер Django обладает правами администратора, пользователя с правами admin.

Используемые технологии

Краткий список:

  • Django
  • PyJWT
  • djangorestframework
  • djangorestframework-simplejwt
  • django-filter

Полный список будет доступен в requirements.txt

Об авторах

Будаев Дмитрий: