Skip to content

MihVS/api_yamdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект YaMDb

Проект YaMDb собирает отзывы (Review) пользователей на произведения (Titles). Произведения делятся на категории: "Книги", "Фильмы", "Музыка". Список категорий (Category) может быть расширен администратором.

Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку.

В каждой категории есть произведения: книги, фильмы или музыка. Например, в категории "Книги" могут быть произведения "Винни Пух и все-все-все" и "Марсианские хроники", а в категории "Музыка" — песня "Давеча" группы "Насекомые" и вторая сюита Баха.

Произведению может быть присвоен жанр (Genre) из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»). Новые жанры может создавать только администратор.

Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы (Review) и ставят произведению оценку в диапазоне от одного до десяти (целое число); из пользовательских оценок формируется усреднённая оценка произведения — рейтинг (целое число). На одно произведение пользователь может оставить только один отзыв.

Технологии

python version django version djangorestframework version pytest version sqlite version requests version

Ресурсы API YaMDb

  • Ресурс auth: аутентификация.

  • Ресурс users: пользователи.

  • Ресурс titles: произведения, к которым пишут отзывы (определённый фильм, книга или песенка).

  • Ресурс categories: категории (типы) произведений («Фильмы», «Книги», «Музыка»).

  • Ресурс genres: жанры произведений. Одно произведение может быть привязано к нескольким жанрам.

  • Ресурс reviews: отзывы на произведения. Отзыв привязан к определённому произведению.

  • Ресурс comments: комментарии к отзывам. Комментарий привязан к определённому отзыву.

Пользовательские роли

  • Аноним — может просматривать описания произведений, читать отзывы и комментарии.

  • Аутентифицированный пользователь (user) — может читать всё, как и

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

  • Модератор (moderator) — те же права, что и у Аутентифицированного пользователя, плюс право удалять и редактировать любые отзывы и комментарии.

  • Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.

  • Суперюзер Django должен всегда обладать правами администратора, пользователя с правами admin. Даже если изменить пользовательскую роль суперюзера — это не лишит его прав администратора. Суперюзер — всегда администратор, но администратор — не обязательно суперюзер.

Установка

Для запуска приложения проделайте следующие шаги:

  1. Склонируйте репозиторий.

  2. Перейдите в папку с кодом и создайте виртуальное окружение:

python -m venv venv
  1. Активируйте виртуальное окружение:
source venv\scripts\activate
  1. Установите зависимости:
python -m pip install -r requirements.txt
  1. Выполните миграции:
python manage.py migrate
  1. Создайте суперпользователя:
python manage.py createsuperuser
  1. Запустите сервер:
python manage.py runserver

Проект запущен и доступен по адресу: localhost:8000

Загрузка данных из csv в БД

Чтобы загрузить таблицы из csv в базу данных:

python manage.py load_csv --all

Чтобы очистить базу данных:

python manage.py load_csv --clear

Создатели

Марк Губин - первый разработчик, разработал всю часть, касающуюся управления пользователями (Auth и Users): систему регистрации и аутентификации, права доступа, работу с токеном, систему подтверждения через e-mail.

Артём Ширнин - второй разработчик, описал категории (Categories), жанры (Genres) и произведения (Titles): модели, представления и эндпойнты для них.

Михаил Шутов - третий разработчик, создал отзывы (Review) и комментарии (Comments): описал модели, представления, настроил эндпойнты, определил права доступа для запросов. Рейтинги произведений, а также реализация механизма импорта данных из csv файлов, тоже его рук дело.

About

api_yamdb

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published