Проект Reviews Service собирает отзывы пользователей на произведения. Сами произведения в проекте не хранятся, здесь нельзя посмотреть фильм или послушать музыку. Произведения делятся на категории
- «Книги»
- «Фильмы»
- «Музыка» Список категорий может быть расширен (например, можно добавить категорию «Изобразительное искусство» или «Ювелирка»). Произведению может быть присвоен жанр из списка предустановленных (например, «Сказка», «Рок» или «Артхаус»). Добавлять произведения, категории и жанры может только администратор. Пользователи оставляют к произведениям текстовые отзывы и ставят произведению оценку в диапазоне от одного до десяти (целое число); из пользовательских оценок формируется усреднённая оценка произведения — рейтинг (целое число). На одно произведение пользователь может оставить только один отзыв. Пользователи могут оставлять комментарии к отзывам. Добавлять отзывы, комментарии и ставить оценки могут только аутентифицированные пользователи.
- Владимир Фатеев TeamLead, разработка разделов Review/Comments, реализация системы рейтинга.
- Екатерина Карпова Разработка системы авторазации, прав доступа и учета пользователей.
- Александр Лобачев Разработка разделов Categories/Genres/Title и загрузчика данных в БД.
Django 3.2, Simple JWT, Python 3.11, DRF, SQLite
Клонировать репозиторий и перейти в него в командной строке:
git clone url.git
python3 -m venv env
source env/bin/activate
python3 -m pip install --upgrade pip
pip install -r requirements.txt
python3 manage.py migrate
python3 manage.py load_data
python3 manage.py runserver
- Регистрация пользователя
POST /auth/signup/
{
"email": "[email protected]",
"username": "string"
}
Response
{
"email": "string",
"username": "string"
}
- Получение токена
POST /auth/token/
{
"username": "string",
"confirmation_code": "string"
}
Response
{
"token": "string"
}
- Получение списка произведений
GET /titles/
{
"count": 0,
"next": "string",
"previous": "string",
"results": [
{
"id": 0,
"name": "string",
"year": 0,
"rating": 0,
"description": "string",
"genre": [
{
"name": "string",
"slug": "string"
}
],
"category": {
"name": "string",
"slug": "string"
}
}
]
}
Подробная документация по API проекта: http://127.0.0.1:8000/redoc/