Проект YaMDb собирает отзывы пользователей на произведения. Произведения делятся на категории: 'Книги', 'Фильмы', 'Музыка'. Список категорий может быть расширен администратором. Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку. В каждой категории есть произведения: книги, фильмы или музыка. Например, в категории 'Книги' могут быть произведения 'Винни-Пух и все-все-все' и 'Марсианские хроники', а в категории 'Музыка' — песня 'Давеча' группы 'Насекомые' и вторая сюита Баха. Произведению может быть присвоен жанр из списка предустановленных. Новые жанры может создавать только администратор.
Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы и ставят произведению оценку в диапазоне от одного до десяти; из пользовательских оценок формируется усреднённая оценка произведения — рейтинг. На одно произведение пользователь может оставить только один отзыв.
Проверьте установлен ли у вас Docker
sudo docker -v
Если Docker отсутствует, то необходимо его установить. Вместе с Docker также устанавливается Docker Compose. После установки, проверьте установлена ли у вас Docker Compose версии 2.5.0 или новее:
sudo docker-compose -v
Если версия Docker Compose ниже 2.5.0 необходимо обновить Docker Compose.
Клонировать репозиторий:
git clone git@github.com:vasilekx/yamdb_final.git
Перейти в папку infra
cd infra
Cоздать в директории файл .env со следующими параметрами:
DB_ENGINE=django.db.backends.postgresql # указываем, что работаем с postgresql
POSTGRES_DB=postgres_db_1 # имя базы данных
POSTGRES_USER=postgres_user_1 # логин для подключения к базе данных
POSTGRES_PASSWORD=qawsed123456 # пароль для подключения к БД (установите свой)
DB_HOST=db # название сервиса (контейнера)
DB_PORT=5432 # порт для подключения к БД
DJANGO_SECRET_KEY='DJANGO_SECRET_KEY' # секретный ключ Django
DJANGO_ALLOWED_HOSTS='web localhost 127.0.0.1 [::1]' # cписок хостов/доменов, для которым доступен проект
Создать и запустить контейнеры:
sudo docker-compose up -d
Обзор команд для работы с docker-compose.
Выполнить миграции:
sudo docker-compose exec web python manage.py migrate
Создать суперпользователя:
sudo docker-compose exec web python manage.py createsuperuser
Собирать статические файлы:
sudo docker-compose exec web python manage.py collectstatic --no-input
Заполнить базу данными:
sudo docker-compose exec web python manage.py loaddata fixtures.json
Работает только на пустой базе!
sudo docker-compose exec web python manage.py data_import
POST-запрос:
http://localhost/api/v1/auth/signup/
Тело запроса:
{
"email": "new_user@test.ru",
"username": "new_user"
}
Ответ:
{
"email": "new_user@test.ru",
"username": "new_user"
}
Сообщение с токеном на email:
From: noreply@apiyamdb.ru
To: new_user@test.ru
Date: Mon, 26 Dec 2022 18:28:25 -0000
Ваш проверочный код rvKSy6rsRS.
GET-запрос:
http://localhost/api/v1/genres/
Ответ:
{
"count": 15,
"next": "http://localhost/api/v1/genres/?page=2",
"previous": null,
"results": [
{
"name": "Rock-n-roll",
"slug": "rock-n-roll"
},
{
"name": "Баллада",
"slug": "ballad"
},
{
"name": "Вестерн",
"slug": "western"
},
{
"name": "Гонзо",
"slug": "gonzo"
},
{
"name": "Детектив",
"slug": "detective"
},
{
"name": "Драма",
"slug": "drama"
},
{
"name": "Классика",
"slug": "classical"
},
{
"name": "Комедия",
"slug": "comedy"
},
{
"name": "Рок",
"slug": "rock"
},
{
"name": "Роман",
"slug": "roman"
}
]
}
- Отправка проверочного кода на электронную почту пользователя при регистрации.
- Владислав Василенко (vasilekx) - управление пользователями
- Писарева Светлана (V0ronaVk0r0ne) - категории Categories, жанры Genres и произведения (Titles)
- Виктор (ViktorLuka) - отзывы (Review) и комментарии (Comments)