Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YaMDb — Сервис отзывов на фильмы, книги и музыку 🎬

📌 О проекте

YaMDb — это REST API сервис для сбора отзывов и оценок пользователей на различные произведения: книги, фильмы, музыку. Произведения делятся на категории и жанры, пользователи оставляют отзывы с оценками (1–10), формируя рейтинг произведений.

Важно: это командный проект. Мы работали втроём, каждый отвечал за свою часть.

🛠 Технологии

  • Python 3.12+
  • Django — веб-фреймворк
  • Django REST Framework — создание API
  • Djoser — аутентификация и управление пользователями
  • JWT — токены доступа
  • SQLite — база данных (на этапе разработки)
  • Pytest — тестирование
  • Simple JWT — работа с JWT-токенами

🚀 Функциональность

Для всех пользователей (анонимов)

  • Просмотр списка произведений (книги, фильмы, музыка)
  • Просмотр отзывов и комментариев

Для аутентифицированных пользователей

  • Публикация отзывов и оценок произведений
  • Редактирование и удаление своих отзывов и комментариев
  • Комментирование отзывов

Для модераторов

  • Всё, что доступно аутентифицированным пользователям
  • Право удалять и редактировать любые отзывы и комментарии

Для администраторов

  • Полные права на управление контентом
  • Создание и удаление произведений, категорий и жанров
  • Назначение ролей пользователям

API эндпоинты

  • auth — регистрация и аутентификация
  • users — управление пользователями
  • titles — произведения
  • categories — категории
  • genres — жанры
  • reviews — отзывы на произведения
  • comments — комментарии к отзывам

📦 Установка и запуск (Для Windows)

Клонировать репозиторий и перейти в него в командной строке:

git clone https://github.com/TheWraz/api-yamdb.git
cd api-yamdb

Cоздать и активировать виртуальное окружение:

python -m venv venv
source venv/Scripts/activate
python -m pip install --upgrade pip

Установить зависимости из файла requirements.txt:

pip install -r requirements.txt
cd api_yamdb

Выполнить миграции:

python manage.py migrate

Импорт данных из csv файлов:

python manage.py import_from_csv

Запустить проект:

python manage.py runserver

👨‍💻 Команда разработки

Проект реализован командой из трёх backend-разработчиков:

  • Апряткин Евгений — система аутентификации, пользователи, права доступа, работа с токеном
  • Телелюхин Артём — модели произведений, категорий, жанров; импорт данных
  • Дмитриев Никита (тимлид) — модели отзывов, комментариев, система рейтингов; управление задачами в Git, код-ревью, координация команды

Проект выполнен в рамках обучения в Яндекс Практикуме

About

REST API для отзывов на фильмы, книги, музыку. Командный проект, я тимлид.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages