ссылка на развернутый проект http://158.160.14.79/redoc/
Проект YaMDb собирает отзывы пользователей на произведения. Произведения делятся на категории: «Книги», «Фильмы», «Музыка». В каждой категории есть произведения: книги, фильмы или музыка. Произведению может быть присвоен жанр. Новые жанры может создавать только администратор. Пользователи могут оставить к произведениям текстовые отзывы и поставить произведению оценку в диапазоне от одного до десяти. Из пользовательских оценок формируется усреднённая оценка произведения — рейтинг. Присутствует возможность комментирования отзывов.
Функционал API:
- Просмотр произведений (кино, музыка, книги), которые подразделяются по жанрам и категориям.
- Возможность оставлять отзывы на произведения и ставить им оценки, на основе которых построена система рейтингов.
- Комментирование оставленных отзывов.
Настройка для приложения Continuous Integration и Continuous Deployment, реализация:
- автоматический запуск тестов,
- обновление образов на Docker Hub,
- автоматический деплой на боевой сервер при пуше в главную ветку master.
Проект разработан командой из трех человек с использованием Git в рамках учебного курса Яндекс.Практикум.
Клонируйте проект себе на локальную машину:
git clone https://github.com/luydmila-davletova/api_yamdb.git
Установите виртуальное окружение:
Mac: python3 -m venv venv
Windows: python -m venv venv
Активируйте виртуальное окружение:
Mac: source venv/bin/activate
Windows: source venv/scripts/activate
Обновление pip:
python -m pip install --upgrade pip
Установите необходимые зависимости:
pip install -r requirements.txt
Выполните миграции:
Mac: python3 manage.py migrate
Windows: python manage.py migrate
Для запуска проекта на локальной машине введите:
Mac: python3 manage.py runserver
Windows: python manage.py runserver
YaMDb будет доступен по адресу:
http://127.0.0.1:8000
Примеры запросов и документация
cd infra
sudo apt remove docker
sudo apt install docker.io
sudo systemctl enable docker
sudo systemctl start docker
Разворачиваем контейнеры: infra_db - база, infra_web - веб, infra_nginx - nginx сервер sudo systemctl stop nginx (останавливаем nginx):
sudo docker-compose up -d --build
sudo docker-compose exec web python manage.py makemigrations reviews
sudo docker-compose exec web python manage.py migrate --run-syncdb
docker-compose exec web python manage.py createsuperuser
docker-compose exec web python manage.py collectstatic --no-input
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
Разработчики:
1. Кирилл Марин (https://github.com/MilkaMjoy):
Разработка системы регистрации и аутентификации, прав доступа, работы с токеном, системы подтверждения через e-mail.
2. Ярослав Мигунов (https://github.com/Migunov-Yaroslav):
Разработка моделей "категории" (Categories), "жанры" (Genres) и "произведения" (Titles), а также разработка представлений и эндпойнтов для них.
3. Людмила Давлетова (https://github.com/luydmila-davletova):
Разработка моделей "отзывы" (Review) и "комментарии" (Comments), а также разработка представлений и эндпойнтов для них. Настройка прав доступа для запросов. Реализация системы рейтингов.