Skip to content

Latest commit

 

History

History
85 lines (58 loc) · 4.71 KB

README.md

File metadata and controls

85 lines (58 loc) · 4.71 KB

API YaMDB

Описание

API YaMDB - это API-сервис, который собирает отзывы (Review) и оценки пользователей на произведения (Title) в разных категориях и жанрах, а так же комментарии (Comment) к отзывам. Из пользовательских оценок формируется усреднённая оценка произведения — рейтинг (целое число). Произведения делятся на категории (Category) и жанры (Genre), список которых может быть расширен, но правами на добавление новых жанров, категорий и произведений обладает только администратор. Добавлять, редактировать и удалять пользователей (User) могут только администраторы. Редактировать и удалять отзывы/комментарии могут только их авторы, модераторы и администраторы. Для авторизации пользователей используется код подтверждения. Для аутентификации пользователей используются JWT-токены.

Реализован REST API для моделей проекта, для аутентификации применяется JWT-токен. В проекте реализованы пермишены, фильтрации, сортировки и поиск по запросам клиентов, реализована пагинация ответов от API.

Пользовательские роли и права доступа:

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

Стек технологий

Порядок действий для запуска проекта

1. Клонировать репозиторий и перейти в папку c проектом

git clone git@github.com:ItsFreez/API_YaMDB.git
cd api_yamdb

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

Для Windows

python -m venv env
source venv/Scripts/Activate

Для MacOS/Linux

python3 -m venv env
source env/bin/activate

3. Обновить менеджер pip и установить зависимости из файла requirements.txt

python -m pip install --upgrade pip
pip install -r requirements.txt

4. Применить миграции для создания базы данных

cd api_yamdb
python manage.py migrate

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

python manage.py runserver

6. Изучить эндпоинты и примеры их использования в документации Redoc

http://127.0.0.1:8000/redoc/

Авторы проекта

ItsFreez

ridleq

daniltivodar