Skip to content

xjt85/yamdb_final

Repository files navigation

Проект "YaMDb"

example workflow

Учебный проект в рамках курса Python-developer на платформе Яндекс.Практикум

Проект YaMDb собирает отзывы (Review) пользователей о произведениях (Titles).

О проекте:

Произведения в проекте не хранятся. Нельзя посмотреть фильм или послушать музыку.

Произведения разделены на категории (Category):
«Книги», «Фильмы», «Музыка».

Список категорий может быть расширен администратором.

Произведению может быть присвоен жанр (Genre) из списка предустановленных:

  • «Сказка»,
  • «Рок»
  • «Артхаус».

Новые жанры может создавать только администратор.

Пользователи могут оставлять к произведениям текстовые отзывы (Review) и
ставить произведению оценку в диапазоне от одного до десяти (целое число).

На одно произведение пользователь может оставить только один отзыв.

Для аутентификации используются JWT-токены.
У неаутентифицированных пользователей доступ к API только на чтение.
Аутентифицированным пользователям разрешено создание, изменение и удаление своего отзыва;
в остальных случаях доступ предоставляется только для чтения.

Технологии:

  • django 2.2.16

Модели: User, Category, Genre, Title, Review, Comment

Как запустить проект:

Клонировать репозиторий и перейти в него в командной строке:

git clone ссылка на репозиторий
cd yamdb_final

В папке /infra/ cоздать .env-файл по следующему шаблону:

DB_ENGINE=django.db.backends.postgresql # указываем, что работаем с postgresql
DB_NAME=<имя базы данных>
POSTGRES_USER=<логин для подключения к базе данных>
POSTGRES_PASSWORD=<пароль для подключения к БД>
DB_HOST=<название сервиса (контейнера), например "db">
DB_PORT=<номер порта для подключения к БД>

команды для запуска приложения в контейнерах:

cd infra
docker-compose up -d --build

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

Развернутый проект можно посмотреть по ссылкам:

http://51.250.30.21/admin/
http://51.250.30.21/redoc/
http://51.250.30.21/api/v1/

Примеры запросов к API

Запрос на получение списка категорий:

http://api/v1/categories/

Запрос на получение списка жанров

http://api/v1/genres/

Разработчик проекта

Роман Чуклинов

https://github.com/xjt85

About

yamdb_final

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages