Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/a-menshikov/yamdb_cicd

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

cicd django django-rest-framework docker docker-compose github-actions github-secrets python

Last synced: 12 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# Проект YaMDb

![Выполнение action.](https://github.com/a-menshikov/yamdb_final/actions/workflows/yamdb_workflow.yml/badge.svg?branch=master)

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

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

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

## Технологии

- Python 3.7
- Django 3.2
- Djangorestframework 3.12.4

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

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

```bash
git clone <ссылка с git-hub>
```

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

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

3. Находясь в папке infra/ поднять контейнеры

```bash
docker-compose up -d --build
```

4. Выполнить миграции:

```bash
docker-compose exec web python manage.py migrate
```

5. Создать суперпользователя:

```bash
docker-compose exec web python manage.py createsuperuser
```

6. Собрать статику:

```bash
docker-compose exec web python manage.py collectstatic --no-input
```

7. Наполнить базу заранее заготовленными файлами:

```bash
docker-compose exec web python manage.py importcsv
```

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

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

```url
/redoc/
```

## Авторы

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

[Артём Меньшиков](https://github.com/a-menshikov)

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

[Андрей Полушин](https://github.com/pandser)

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

[Лазаренков Евгений](https://github.com/lazarenkov-e)

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