Проект YaMDb собирает отзывы пользователей на различные произведения сохранённые в базе данных (БД) проекта. Произведения делятся на категории: «Книги», «Фильмы», «Музыка» и т.д. Список категорий может быть расширен администратором (например, можно добавить категорию «Изобразительное искусство» или «Ювелирка»).
Система не хранит в своей БД YaMDb исходный контент, нельзя посмотреть фильм или послушать музыку.
Новые произведения могут вносить только администраторы, для рядовых пользователей данный функционал недоступен. Произведению может быть присвоен жанр из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»). Новые жанры также может создавать только администратор.
Проект доступен по ссылке.
- Скопируйте проект
git clone https://github.com/Ahttps://github.com/AsmodaiP/infra_sp2 - Создайте env-файл с переменными окружения и наполнить его по шаблону:
SECRET_KEY=p&l%385148kslhtyn^##a1)ilz@4zqj=rq&agdol^##zgl9(vs
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
DEBUG=True
ALLOWED_HOSTS=*- Установить Docker (инструкция)
- Установить Docker Compose (инструкция)
- Перейдите в директорию infra и запустите Docker-compose
cd infra/
docker-compose up -
Выполните миграции, соберите статику создайте суперпользователя и загрузите тетовые данные:
docker-compose exec web python manage.py migrate --noinput docker-compose exec web python manage.py createsuperuser docker-compose exec web python manage.py collectstatic --no-input docker-compose exec web python manage.py loaddata fixtures.json
Краткое описание основных возможностей, за более подробной информацией обратитесь к /redoc/
Для получения JWT-токена необходимо отправить JSON запрос, содержащий имя пользователя и имя почтового ящика.
JSON запрос:
{
"email": "string",
"username": "string"
}POST: /api/v1/auth/signup/
В письме придёт код подтверждения. Дальше необходимо необходимо отправить JSON запрос, содержащий код подтверждения:
{
"username": "string",
"confirmation_code": "string"
}POST: /api/v1/auth/token/
В ответ вы получите токен для доступа к сервису.
{
"token": "string"
}Вам будут доступны:
- Категории: /api/v1/categories/
- Жанры: /api/v1/genres/
- Произведения: /api/v1/titles/
- Отзывы: /api/v1/titles/{title_id}/reviews/
- Комментарии: /api/v1/titles/{title_id}/reviews/{review_id}/comments/
Авторами проекта являются: Дмитрий Перегуда, Сергей Жаров, Иван Осянин.
Были использованы следующие технологии: Django 3.05, Django Rest Framework 3.12.4, gunicorn 20.0.4, python 3.8.