Проект YaMDb собирает отзывы (Review) пользователей на произведения (Titles). Произведения делятся на категории: «Книги», «Фильмы», «Музыка». Список категорий (Category) может быть расширен (например, можно добавить категорию «Изобразительное искусство» или «Ювелирка»).
Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку.
В каждой категории есть произведения: книги, фильмы или музыка. Например, в категории «Книги» могут быть произведения «Винни Пух и все-все-все» и «Марсианские хроники», а в категории «Музыка» — песня «Давеча» группы «Насекомые» и вторая сюита Баха.
Произведению может быть присвоен жанр (Genre) из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»). Новые жанры может создавать только администратор.
Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы (Review) и ставят произведению оценку в диапазоне от одного до десяти (целое число); из пользовательских оценок формируется усреднённая оценка произведения — рейтинг (целое число). На одно произведение пользователь может оставить только один отзыв.
- Получить список всех отзывов
- Создать новый отзыв
- Получить отзыв по id
- Частично обновить отзыв по id
- Удалить отзыв по id
- Получить список всех комментариев к отзыву по id
- Создать новый комментарий для отзыва
- Получить комментарий для отзыва по id
- Частично обновить комментарий к отзыву по id
- Удалить комментарий к отзыву по id
- Отправление confirmation_code на переданный email
- Получение JWT-токена в обмен на email и confirmation_code
- Получить список всех пользователей
- Создание пользователя
- Получить пользователя по username
- Изменить данные пользователя по username
- Удалить пользователя по username
- Получить данные своей учетной записи
- Изменить данные своей учетной записи
- Получить список всех категорий
- Создать категорию
- Удалить категорию
- Получить список всех жанров
- Создать жанр
- Удалить жанр
- Получить список всех объектов
- Создать произведение для отзывов
- Информация об объекте
- Обновить информацию об объекте
- Удалить произведение
- Необходимо отправить POST-запрос на добавление нового пользователя с параметрами email и username на эндпоинт
/api/v1/auth/signup/
. - YaMDB отправит письмо с кодом подтверждения (confirmation_code) на этот адрес email.
- Дальше необходимо отправить POST-запрос с параметрами username и confirmation_code на эндпоинт
/api/v1/auth/token/
, в ответе на запрос придёт token (JWT-токен). - При желании можно отправить PATCH-запрос на эндпоинт
/api/v1/users/me/
и заполнить поля в своём профайле (описание полей — в документации).
Документация к API доступна по адресу http://127.0.0.1/redoc/
Cкачать Docker Desktop для Mac или Windows. Docker Compose будет установлен автоматически. В Linux следует убедиться, что установлена последняя версия Compose. Официальная инструкция по установке Docker.
Пример:
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
SECRET_KEY=...
DEBUG=False
ALLOWED_HOSTS=127.0.0.1
Для запуска необходимо выполнить из директории /infra команду:
docker-compose up -d
Применяем миграции:
docker-compose exec web python manage.py migrate
Создание суперпользователя:
docker-compose exec web python manage.py createsuperuser
Выполните команду:
docker-compose exec web python manage.py collectstatic --no-input
Для заполнения базы тестовыми данными вы можете использовать файл fixtures.json, который находится в директории /infra. Выполните команду:
docker-compose exec web python manage.py loaddata fixtures.json
Остановить работу всех контейнеров можно командой:
docker-compose down
Для пересборки и запуска контейнеров воспользуйтесь командой:
docker-compose up -d --build
Мониторинг запущенных контейнеров:
docker stats
Останавливаем и удаляем контейнеры, сети, тома и образы:
docker-compose down -v
Команда покажет, сколько места на диске занимают образы, контейнеры, тома и билд-кеш. Будет и информация о том, сколько места можно освободить, удалив ненужное:
docker system df
Все неактивные (остановленные) контейнеры удаляются командой:
docker container prune
Можно удалить образы, какие использовались как промежуточные для сборки других образов, но на которые не ссылается ни один контейнер. Их называют dangling images (англ. «висячие образы»). Для выполнения такой задачи используется команда:
docker image prune
Удалить вообще всё, что не используется (неиспользуемые образы, остановленные контейнеры, тома, которые не использует ни один контейнер, билд-кеш), можно командой:
docker system prune