Skip to content

апрель 2023. Итоговый проект инфраструктурных спринтов Яндекс Практикум. Акцент на работу с Docker и настройку через Github Actions CI/CD в REST API написанном мной ранее

Notifications You must be signed in to change notification settings

a-menshikov/Yamdb_CICD

Repository files navigation

Проект YaMDb

Выполнение action.

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

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

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

Технологии

  • Python 3.7
  • Django 3.2
  • Djangorestframework 3.12.4

Запуск проекта через Docker

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

    git clone <ссылка с git-hub>
  2. Шаблон наполнения .env (не включен в текущий репозиторий), расположить по пути infra/.env

    DB_ENGINE=django.db.backends.postgresql
    DB_NAME= # имя базы данных
    POSTGRES_USER= # логин для подключения к базе данных
    POSTGRES_PASSWORD= # пароль для подключения к БД (установите свой)
    DB_HOST=database
    DB_PORT= # порт для подключения к БД
    SECRET_KEY= # секретный ключ Django
    
  3. Находясь в папке infra/ поднять контейнеры

    docker-compose up -d --build
  4. Выполнить миграции:

    docker-compose exec web python manage.py migrate
  5. Создать суперпользователя:

    docker-compose exec web python manage.py createsuperuser
  6. Собрать статику:

    docker-compose exec web python manage.py collectstatic --no-input
  7. Наполнить базу заранее заготовленными файлами:

    docker-compose exec web python manage.py importcsv

Документация к проекту

Документация для API после установки доступна по адресу

    /redoc/

Авторы

Студенты курса "Python-разработчик" от Яндекс-Практикума:

Артём Меньшиков

модели, view и эндпойнты для:
произведений,
категорий,
жанров;
импорт данных из csv файлов
docker

Андрей Полушин

система регистрации и аутентификации,
права доступа,
работа с токеном,
система подтверждения через e-mail

Лазаренков Евгений

модели, view и эндпойнты для:
отзывов,
комментариев,
рейтинга произведений

About

апрель 2023. Итоговый проект инфраструктурных спринтов Яндекс Практикум. Акцент на работу с Docker и настройку через Github Actions CI/CD в REST API написанном мной ранее

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages