YaMDb — это REST API сервис для сбора отзывов и оценок пользователей на различные произведения: книги, фильмы, музыку. Произведения делятся на категории и жанры, пользователи оставляют отзывы с оценками (1–10), формируя рейтинг произведений.
Важно: это командный проект. Мы работали втроём, каждый отвечал за свою часть.
- Python 3.12+
- Django — веб-фреймворк
- Django REST Framework — создание API
- Djoser — аутентификация и управление пользователями
- JWT — токены доступа
- SQLite — база данных (на этапе разработки)
- Pytest — тестирование
- Simple JWT — работа с JWT-токенами
- Просмотр списка произведений (книги, фильмы, музыка)
- Просмотр отзывов и комментариев
- Публикация отзывов и оценок произведений
- Редактирование и удаление своих отзывов и комментариев
- Комментирование отзывов
- Всё, что доступно аутентифицированным пользователям
- Право удалять и редактировать любые отзывы и комментарии
- Полные права на управление контентом
- Создание и удаление произведений, категорий и жанров
- Назначение ролей пользователям
auth— регистрация и аутентификацияusers— управление пользователямиtitles— произведенияcategories— категорииgenres— жанрыreviews— отзывы на произведенияcomments— комментарии к отзывам
Клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/TheWraz/api-yamdb.git
cd api-yamdb
Cоздать и активировать виртуальное окружение:
python -m venv venv
source venv/Scripts/activate
python -m pip install --upgrade pip
Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
cd api_yamdb
Выполнить миграции:
python manage.py migrate
Импорт данных из csv файлов:
python manage.py import_from_csv
Запустить проект:
python manage.py runserver
Проект реализован командой из трёх backend-разработчиков:
- Апряткин Евгений — система аутентификации, пользователи, права доступа, работа с токеном
- Телелюхин Артём — модели произведений, категорий, жанров; импорт данных
- Дмитриев Никита (тимлид) — модели отзывов, комментариев, система рейтингов; управление задачами в Git, код-ревью, координация команды
Проект выполнен в рамках обучения в Яндекс Практикуме