Skip to content

Latest commit

 

History

History
75 lines (62 loc) · 4.13 KB

File metadata and controls

75 lines (62 loc) · 4.13 KB

Проект API YaMDBb

Описание

Проект YaMDb собирает отзывы пользователей на различные произведения.

Установка

  • Клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/firepanda70/api_yamdb
cd api_yamdb
  • Cоздать и активировать виртуальное окружение:
python -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
  • Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
  • Указать переменные среды в файле .env:
DJANGO_KEY=secret_key
ALLOWED_HOSTS=localhost
  • Выполнить миграции:
python3 manage.py migrate
  • Добавить тестовые данные:
python3 manage.py loaddata fixtures.json
# Суперюзер тестовых данных: admin
# Пароль: admin
  • Запустить проект:
python3 manage.py runserver

Использование

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

  1. Пользователь отправляет POST-запрос на добавление нового пользователя с параметрами email и username на эндпоинт /api/v1/auth/signup/.
  2. YaMDB отправляет письмо с кодом подтверждения (confirmation_code) на адрес email.
  3. Пользователь отправляет POST-запрос с параметрами username и confirmation_code на эндпоинт /api/v1/auth/token/, в ответе на запрос ему приходит token (JWT-токен).

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

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

Документация

Подробная документация находится в файле redoc.yaml в api_yamdb/static/. Будет доступна после запуска проекта по эндпоинту /redoc/

Авторы

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

IPfa - категории (Categories), жанры (Genres) и произведения (Titles): модели, view и эндпойнты для них.

firepanda70 - отзывы (Review) и комментарии (Comments): модели и view, эндпойнты, права доступа для запросов. Рейтинги произведений.

Технологии

  • Python 3
  • Django
  • Django REST Framework
  • SQLite3
  • Simple-JWT

Лицензия

MIT License