GitHub - kireev20000/TeamWork_Project: Площадка с отзывами пользователей на музыку, книги и другие произведения. Реализована система оценки и обсуждения отзывов в комментариях. · GitHub
Skip to content

kireev20000/TeamWork_Project

Folders and files

Repository files navigation

TeamWork Project

Проект TeamWork Project предоставляет сервис по агрегации отзывов пользователей на различные произведения с возможность совместного обсуждения для зарегистрированных пользователей.


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

  • Администратор может добавлять произведения, категории и жанры.
  • Пользователи сервиса могут оставлять текстовые отзывы.
  • Пользователи могут ставить оценки произведениям в диапазоне от 1 до 10
  • Из пользовательских оценок формируется усреднённая оценка произведения (рейтинг). На одно произведение пользователь может оставить только один отзыв.
  • Пользователи могут оставлять комментарии к отзывам.
  • Добавлять отзывы, комментарии и ставить оценки могут только аутентифицированные пользователи.
  • Для неавторизованных пользователей работа с API доступна в режиме чтения.
  • Реализованы пользовательские роли и права доступа для них.
  • Возможна самостоятельная регистрация новых пользователей.
  • Доступна возможность импортировать демо-данные из csv-файлов проекта.

Пользовательские роли и права доступа:

  • Аноним — может просматривать описания произведений, читать отзывы и комментарии.
  • Аутентифицированный пользователь (user) — может читать всё, как и Аноним, может публиковать отзывы и ставить оценки произведениям (фильмам/книгам/песенкам), может комментировать отзывы; может редактировать и удалять свои отзывы и комментарии, редактировать свои оценки произведений.
  • Модератор (moderator) — те же права, что и у Аутентифицированного пользователя, плюс право удалять и редактировать любые отзывы и комментарии.
  • Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.
  • Суперюзер Django обладает правами администратора, пользователя с правами admin.

Технологии

  • Python 3.9
  • Django 3.2
  • SQLite
  • Simple JWT
  • django_rest_framework 3.12.4
  • django-filter 22.1
  • pytest 6.2.4

Запуск проекта:

Клонировать репозиторий

git clone <ssh ссылка>

Cоздать и активировать виртуальное окружение:

python -m venv venv
source venv/Scripts/activate

Установить зависимости из файла requirements.txt:

pip install -r requirements.txt

Выполнить миграции

python manage.py migrate

Выполнить загрузку демо-информации в базу данных:

python manage.py import_csv_data

Запустить локальный сервер

python manage.py runserver 8000

Перейти по адресу сервера

127.0.0.1:8000

Примеры запросов

Основные эндпоинты API

http://127.0.0.1:8000/api/v1/categories/
http://127.0.0.1:8000/api/v1/genres/
http://127.0.0.1:8000/api/v1/titles/

пример POST запроса на http://127.0.0.1:8000/api/v1/genres/:

{
    "name": "Детектив",
    "slug": "detective"
}

Основные эндпоинты для аутентификации нового пользователя

Для аутентификации применены JWT-токены.

Регистрация нового пользователя:

http://127.0.0.1:8000/api/v1/auth/signup/

Получение JWT-токена:

http://127.0.0.1:8000/api/v1/auth/token/

Токен необходимо передавать в заголовке каждого запроса, в поле Authorization. Перед самим токеном должно стоять ключевое слово Bearer и пробел.


Полный список эндпойнтов, методы и параметры запросов описаны в докуметации:

http://127.0.0.1:8000/redoc/

Авторы проекта:

Александр Киреев - https://github.com/kireev20000

  • тимлид, модели, view и эндпойнты для произведений, категорий, жанров; реализация импорта данных из csv файлов.

Константин Костенко - https://github.com/beehead

  • система регистрации и аутентификации, права доступа, работу с токеном, систему подтверждения через e-mail.

Никита Бобков - https://github.com/makls555

  • разработка ресурсов отзывов и комментариев.

Дата разработки - март 2023


Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

About

Площадка с отзывами пользователей на музыку, книги и другие произведения. Реализована система оценки и обсуждения отзывов в комментариях.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors