Приложение для сбора отзывов пользователей о фильмах, книгах, музыке. Каждое произведение может быть объединено администратором в категории и назначены жанры. Посредством REST API пользователи могут регистрироваться в приложении, авторизироваться, добавлять обзоры, оставлять оценки и комментарии к произведениям.
Это готовый Docker-образ, содержащий REST API приложение, пользователи которого могут:
- регистрироваться в приложении, получая код подтверждения на свой e-mail
- получать токен для полноценного доступа к API, работа с токенами реализована с помощью библиотеки
SimpleJWT
- авторизованные пользователи могут изменять свои учетные данные через специальный адрес
/users/me
- администраторы могут создавать новых пользователей, изменять их учетные данные других пользователей
- пользователи могут запрашивать категории произведений, жанры, произведения, отзывы, комментарии к отзывам
- оставлять отзывы и рейтинг на произведения, комментировать другие отзывы, редактировать и удалять свои отзывыв и комментарии
Сайт приложения: YaMDb
Методы API имеют разграниченный доступ. Пользователи делятся на:
- пользователей
- модераторов
- администраторов
Пользователи могут создавать новые произведения. Писать ревью на произведенеия и комментировать их. Администраторы могут создавать пользователей и назначать им права. Модераторы могут редактировать произведения, категории и жанры.
💁 Подробное интерактивное описание всех доступных методов API расположено по адресу:
https://yacloud.telfia.com/swagger/
https://yacloud.telfia.com/redoc/
Для запуска приложения должен быть установлен git и docker.
git clone [email protected]:spaut33/yamdb_final.git
cd yamdb_final
Шаблон для создания .env файла (содержит необходимые для работы перменные окружения). Данный файл должен находится в папке infra
проекта:
EMAIL_HOST_USER=[email protected]
EMAIL_HOST_PASSWORD=password
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
SECRET_KEY=django-secret-key
ALLOWED_HOSTS="127.0.0.1"
DEBUG=True
Собрать и запустить контейнеры
cd infra
sudo docker-compose build
sudo docker-compose up
После запуска контейнеров необходимо применить миграции, создать суперпользователя и собрать статику:
sudo docker-compose exec web python3 manage.py migrate
sudo docker-compose exec web python3 manage.py createsuperuser
sudo docker-compose exec web python3 manage.py collectstatic --no-input
Для запуска тестов нужно перейти в директорию репозитория
cd yamdb_final
Cоздать и активировать виртуальное окружение:
python3 -m venv .venv
source env/bin/activate
Запустить тесты:
pytest
Для наполнения базы данных тестовыми данными можно использовать команду:
sudo docker-compose exec web python3 manage.py flush --no-input
sudo docker-compose exec web python3 manage.py loaddata fixtures.json
- Python 3.7
- Django 2.2
- Django Rest Framework 3.12
- djangorestframework-simplejwt
- django-filter
- python-dotenv
- drf-yasg
- pytest
- Docker
- PostgreSQL
- Nginx
-
Роман Петраков - Тимлид
-
Сергей Ивакин - Наставник
-
Андрей Квичанский - Ревьюер