Проект YaMDb собирает отзывы пользователей на произведения. Произведения делятся на категории: «Книги», «Фильмы», «Музыка».
- ролевое разграничение доступа;
- аутентификация на JWT токенах;
- регистрация и авторизация с подтверждением по Email;
- система комментариев и оценок;
- документация на Redoc.
Алгоритм регистрации пользователей:
- Пользователь отправляет запрос с параметром
email
на/auth/email/
. - YaMDB отправляет письмо с кодом подтверждения (
confirmation_code
) на адресemail
. - Пользователь отправляет запрос с параметрами
email
иconfirmation_code
на/auth/token/
, в ответе на запрос ему приходитtoken
(JWT-токен). - При желании пользователь отправляет PATCH-запрос на
/users/me/
и заполняет поля в своём профайле (описание полей — в документации).
Пользовательские роли:
- Аноним — может просматривать описания произведений, читать отзывы и комментарии.
- Аутентифицированный пользователь — может, как и Аноним, читать всё, дополнительно он может публиковать отзывы и ставить рейтинг произведениям (фильмам/книгам/песенкам), может комментировать чужие отзывы и ставить им оценки; может редактировать и удалять свои отзывы и комментарии.
- Модератор — те же права, что и у Аутентифицированного пользователя плюс право удалять любые отзывы и комментарии.
- Администратор — полные права на управление проектом и всем его содержимым. Может создавать и удалять категории и произведения. Может назначать роли пользователям.
- Администратор Django — те же права, что и у роли Администратор.
-
Запускам docker-compose
docker-compose up --build
-
Остановка:
docker-compose down -v
-
Документация: localhost/redoc
- Django Rest Framework
- PostgreSQL
- Docker
- Gunicorn
- NGINX
- GitHub Actions