Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект YaMDb

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

Ресурсы API YaMDb

AUTH: аутентификация.

USERS: пользователи.

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

CATEGORIES: категории (типы) произведений ("Фильмы", "Книги", "Музыка").

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

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

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

Алгоритм регистрации пользователей

  1. Пользователь отправляет POST-запрос с параметром email на
/api/v1/auth/email/
  1. YaMDB отправляет письмо с кодом подтверждения (confirmation_code) на адрес email (функция в разработке).

  2. Пользователь отправляет POST-запрос с параметрами email и confirmation_code на

`/api/v1/auth/token/`

в ответе на запрос ему приходит token (JWT-токен).

  1. Эти операции выполняются один раз, при регистрации пользователя. В результате пользователь получает токен и может работать с API, отправляя этот токен с каждым запросом.

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

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

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

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

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

Администратор Django — те же права, что и у роли Администратор.

Установка

Склонировать репозиторий себе:

git clone git@github.com:ggastly/api_yamdb.git

Зайти в папку с проектом:

cd api_yamdb

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

python3 -m venv env
source env/bin/activate

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

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

Создать в проекте файл .env, в нем указать SECRET_KEY="любой плейсхолдер".

Зайти в папку с файлом manage.py:

cd api_yamdb

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

python3 manage.py migrate

Для запуска сервера разработки, находясь в директории проекта выполните команды:

python manage.py createsuperuser
python manage.py runserver

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

About

REST API for project Yamdb

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages