- Учебный проект для командной разработке API для веб приложения YaMDb, базируемых на фреймворке Django и модуле Django Rest Framework. Для обеспечения контороля прав доступа в проекте используется модуль JWT-токен.
-
Проект YaMDb собирает отзывы (Review) пользователей на произведения (Titles). Произведения делятся на категории: «Книги», «Фильмы», «Музыка». Список категорий (Category) может быть расширен администратором (например, можно добавить категорию «Изобразительное искусство» или «Ювелирка»).
-
Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку.
-
В каждой категории есть произведения: книги, фильмы или музыка. Например, в категории «Книги» могут быть произведения «Винни-Пух и все-все-все» и «Марсианские хроники», а в категории «Музыка» — песня «Давеча» группы «Насекомые» и вторая сюита Баха.
-
Произведению может быть присвоен жанр (Genre) из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»). Новые жанры может создавать только администратор.
-
Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы (Review) и ставят произведению оценку в диапазоне от одного до десяти (целое число); из пользовательских оценок формируется усреднённая оценка произведения — рейтинг (целое число). На одно произведение пользователь может оставить только один отзыв.
- Клонировать репозиторий и перейти в него в командной строке (испольщуем ssh):
git clone [email protected]:carden-code/api_yamdb.git
cd api_yamdb
- Cоздать и активировать виртуальное окружение:
python3 -m venv venv
source venv/bin/activate
- Обновить pip до последней версии:
python3 -m pip install --upgrade pip
- Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
- Добавьте файл .env в котором хранится SECRET_KEY
cd api_yamdb
echo "SECRET_KEY=YourSecretKey" > .env
- Выполнить миграции:
python3 manage.py makemigrations
python3 manage.py migrate
- Загрузить тестовые данные из CSV файлов (static/data):
python3 manage.py load_info
- Запустить проект:
python3 manage.py runserver
- Дитальное описание и примеры работы API проекта представлены в документации: http://127.0.0.1:8000/redoc/ в формате ReDoc.
- Python >= 3.7
- django==2.2.16
- djangorestframework==3.12.4
- djangorestframework-simplejwt==5.1.0
- django-filter==21.1
- PyJWT==2.1.0
- python-dotenv==0.20.0
- управление пользователями (auth и users): система регистрации и аутентификации, права доступа, работа с токеном, система подтверждения e-mail, поля.
- Категории (Categories), жанры (Genres) и произведения (Titles): модели, view и эндпойнты для них и рейтинги.
- Отзывы (Review) и комментарии (Comments): модели и view, эндпойнты, права доступа для запросов. Рейтинги произведений.