Skip to content

Проект YaMDb. Финальный проект блока Работа с внешними API курса Яндекс.Практикум

Notifications You must be signed in to change notification settings

Sausetardar/yamdb_final-2

Repository files navigation

example workflow name

REST API для сервиса YaMDb — базы отзывов о фильмах, книгах, музыке и того, о чем можно написать отзыв. (Совместный проект студентов Яндекс.Практикум)

Рабочий проект находится по адресу https://www.yamdb.praktikum.ga/

Технологии

Проект написан в команде из трех разработчиков.

Код приложения написан на Python.

Для работы с данными применены фреймворки Django, Django rest framework, в том числе регистрация осуществляется через Simple JWT.

Для хранения и управления данными проекта используется СУБД PostgreSQL упакованная в контейнер docker postgres docker.

Для сборки контейнеров и развертывания приложений применен Docker и Docker-Compose.

Список использованных инструментов можно посмотреть в файле requirements.txt .

Необходимые компоненты

Для развернывания приложения необходимо установить Docker и Docker-Compose

Описание проекта

Проект YaMDb собирает отзывы (Review) пользователей на произведения (Title). Произведения делятся на категории: «Книги», «Фильмы», «Музыка». Список категорий (Category) может быть расширен (например, можно добавить категорию «Изобразительное искусство» или «Ювелирка»).

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

В каждой категории есть произведения: книги, фильмы или музыка. Например, в категории «Книги» могут быть произведения «Винни Пух и все-все-все» и «Марсианские хроники», а в категории «Музыка» — песня «Давеча» группы «Насекомые» и вторая сюита Баха. Произведению может быть присвоен жанр из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»). Новые жанры может создавать только администратор. Благодарные или возмущённые читатели оставляют к произведениям текстовые отзывы (Review) и выставляют произведению рейтинг (оценку в диапазоне от одного до десяти). Из множества оценок автоматически высчитывается средняя оценка произведения.

Подготовка к работе

Клонируйте репозиторий на локальную машину.

git clone https://github.com/sorochinskii/yamdb_final

В директории проекта находится файл .env.example, в котором описаны все нужные переменные и их примерные значения. В этой же директории необходимо создать файл .env с актуальными значениями переменных.

Запустите процесс сборки и запуска контейнеров. Для запуска в фоновом режиме примените ключ -d

docker-compose up

Запустите терминал внутри контейнера (команду необходимо выполнить в папке с файлом docker-compose.yaml)

docker-compose exec web bash

Проведите миграцию для переноса моделей django на структуру базы данных

python manage.py migrate

Для работы с админкой django необходимо создать суперпользователя

python manage.py createsuperuser

Возможно загрузить в базу данных тестовые данные

python manage.py load_fixtures

Остановить работу и удалить контейнеры можно командой

docker-compose down

Над проектом работали:

Руслан Фатхутдинов. Управление пользователями: система регистрации и аутентификации, права доступа, работа с токеном, система подтверждения e-mail, поля.

Михаил Кудинов. Категории, жанры и произведения: модели, view и эндпойнты для них.

Александр Сорочинский. Отзывы и комментарии: модели и view, эндпойнты, права доступа для запросов. Рейтинги произведений.

About

Проект YaMDb. Финальный проект блока Работа с внешними API курса Яндекс.Практикум

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages