Skip to content

Проект YaMDb собирает отзывы пользователей на произведения. Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку. Произведения делятся на категории, такие как «Книги», «Фильмы», «Музыка».

Notifications You must be signed in to change notification settings

xxfeel/yamdb_final

Repository files navigation

Проект: создание DevOps для YaMDb

yamdb_final

Описание:

Проект YaMDb собирает отзывы пользователей на произведения. Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку. Произведения делятся на категории, такие как «Книги», «Фильмы», «Музыка».

Технологии :

Python Django DjangoREST JWT Docker GitHub

Функционал:

  • Реализован REST API.
  • Используется аутентификация с помощью JWT-token.
  • Поддерживает методы GET, POST, PUT, PATCH, DELETE.

Ресурсы

  • Ресурс auth: аутентификация.
  • Ресурс users: пользователи.
  • Ресурс titles: произведения, к которым пишут отзывы (определённый фильм, книга или песенка).
  • Ресурс categories: категории (типы) произведений («Фильмы», «Книги», «Музыка»). Одно произведение может быть привязано только к одной категории.
  • Ресурс genres: жанры произведений. Одно произведение может быть привязано к нескольким жанрам.
  • Ресурс reviews: отзывы на произведения. Отзыв привязан к определённому произведению.
  • Ресурс comments: комментарии к отзывам. Комментарий привязан к определённому отзыву.

Пользовательские роли и права доступа:

  • Аноним — может просматривать описания произведений, читать отзывы и комментарии.
  • Аутентифицированный пользователь (user) — может читать всё, как и Аноним, может публиковать отзывы и ставить оценки произведениям (фильмам/книгам/песенкам), может комментировать отзывы; может редактировать и удалять свои отзывы и комментарии, редактировать свои оценки произведений. Эта роль присваивается по умолчанию каждому новому пользователю.
  • Модератор (moderator) — те же права, что и у Аутентифицированного пользователя, плюс право удалять и редактировать любые отзывы и комментарии.
  • Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.
  • Суперюзер Django обладает правами администратора, пользователя с правами admin.

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

  1. Склонировать репозиторий в командной строке:
git clone https://github.com/IvanFilippov74/yamdb_final.git

Затем перейдите в корневую директорию проекта:

cd yamdb_final/
  1. В корневой директории создайте файл .env, и заполните его:
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=<ваш_пароль>
DB_HOST=db
DB_PORT=5432
SECRET_KEY=<секретный_ключ_проекта>
  1. Если Docker не установлен, установите его используя официальную инструкцию:
https://docs.docker.com/engine/install/
  1. Перейдите в директорию infra:
cd infra/

Затем запустите docker-compose, используя команду*:

docker-compose up -d
  1. Создайте миграции командой:
docker-compose exec web python manage.py migrate
  1. Подгрузите статику:
docker-compose exec web python manage.py collectstatic --no-input
  1. Заполните базу данных фикстурами:
docker-compose exec web python manage.py loaddata fixtures.json
  1. Создайте супер пользователя (кроме пользователя admin):
docker-compose exec web python manage.py createsuperuser
  1. Проект доступен по адресу http://localhost/, для админ-панели используйте http://localhost/admin/, документацию по api можно посмотреть здесь > http://localhost/redoc/.
  2. Остановить запущенные контейнеры можно командой docker-compose stop, вновь запустить docker-compose start, для остановки и удаления контейнеров используйте команду docker-compose down -v.

*Важное примечание для ОС Linux используйте команду sudo. ** Работа контейнеров продемонстрирована здесь:

Авторы:

Филиппов Иван

About

Проект YaMDb собирает отзывы пользователей на произведения. Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку. Произведения делятся на категории, такие как «Книги», «Фильмы», «Музыка».

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages