Skip to content

👥 💬 API для веб приложения YaMDb, базируемых на фреймворке Django и модуле Django Rest Framework.

Notifications You must be signed in to change notification settings

carden-code/api_yamdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект "Yamdb"

  • Учебный проект для командной разработке API для веб приложения YaMDb, базируемых на фреймворке Django и модуле Django Rest Framework. Для обеспечения контороля прав доступа в проекте используется модуль JWT-токен.

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

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

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

  • В каждой категории есть произведения: книги, фильмы или музыка. Например, в категории «Книги» могут быть произведения «Винни-Пух и все-все-все» и «Марсианские хроники», а в категории «Музыка» — песня «Давеча» группы «Насекомые» и вторая сюита Баха.

  • Произведению может быть присвоен жанр (Genre) из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»). Новые жанры может создавать только администратор.

  • Благодарные или возмущённые пользователи оставляют к произведениям текстовые отзывы (Review) и ставят произведению оценку в диапазоне от одного до десяти (целое число); из пользовательских оценок формируется усреднённая оценка произведения — рейтинг (целое число). На одно произведение пользователь может оставить только один отзыв.

Установка и запуск проекта:

  • Клонировать репозиторий и перейти в него в командной строке (испольщуем ssh):

git clone git@github.com: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:

  • Дитальное описание и примеры работы 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, эндпойнты, права доступа для запросов. Рейтинги произведений.

Лицензия:

  • Этот проект лицензируется в соответствии с лицензией MIT

About

👥 💬 API для веб приложения YaMDb, базируемых на фреймворке Django и модуле Django Rest Framework.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published