Проект 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
- Пользователь отправляет POST-запрос на добавление нового пользователя с параметрами email и username на эндпоинт /api/v1/auth/signup/.
- YaMDB отправляет письмо с кодом подтверждения (confirmation_code) на адрес email.
- Пользователь отправляет 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