Skip to content

sasha0090/Yamdb_API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект YamDB

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

Описание проекта

Проект аккумулирует отзывы пользователей о произведениях.
Произведения в свою очередь делятся на категории, жанры.
У пользователей есть разные уровни доступа:
администратор, модератор, аутентифицированный пользователь, посетитель.

Регистрация пользователя

  • Пользователь отправляет запрос с параметрами email и username на /auth/email/.
  • YaMDB отправляет письмо с кодом подтверждения (confirmation_code) на адрес email .
  • Пользователь отправляет запрос с параметрами email и confirmation_code на /auth/token/, в ответе на запрос ему приходит token (JWT-токен).

Отзывы и комментарии к ним

Через эндпоинт /api/v1/titles/{title_id}/reviews/ Зарегистрированные пользователи могут оставить к произведениям отзывы с оценкой в диапазоне от одного до десяти. На одно произведение пользователь может оставить только один отзыв. С помощью пользовательских оценок формируется усреднённая оценка произведения. Читать отзывы могут все посетители.

Через эндпоинт /api/v1/titles/{title_id}/reviews/{review_id}/comments/ Зарегистрированные пользователи на отзывы могут оставлять комментарии. Читать комментарии могут все посетители.

Более подробная документация доступна по эндопинту /redoc/

Технологии

  • проект написан Python с помощью фреймворка Django REST Framework
  • аутентификация реализована с помощью Simple JWT.

Запуск проекта

◾ Клонируйте репозиторий и перейти в него

◾ Установите и активируйте виртуальное окружение

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

pip install -r requirements.txt

◾ В папке с файлом manage.py выполните миграции:

python manage.py migrate

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

python manage.py runserver

Распределение в проекте

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

Задачи были распределены следующим образом:

  • Антон Денисов — реализация управления пользователями: система регистрации и аутентификации, права доступа, работу с токеном, систему подтверждения через e-mail.

  • Александр Телепин — реализация работы с отзывами, системой рейтингов и комментариями: описание моделей, представления, настройка эндпойнтов и определение прав доступа для запросов.

  • Александр Дзюба — реализация работы с произведениями, категориями и жанрами: описание моделей, представления и настройка эндпойнтов и определение прав доступа для запросов.

Releases

No releases published

Packages

No packages published