Проект YaMDb собирает отзывы (Review) пользователей на произведения (Title). Произведения делятся на категории: "Книги", "Фильмы", "Музыка". Список категорий (Category) может быть расширен.
AUTH: аутентификация.
USERS: пользователи.
TITLES: произведения, к которым пишут отзывы (определённый фильм, книга или песенка).
CATEGORIES: категории (типы) произведений ("Фильмы", "Книги", "Музыка").
GENRES: жанры произведений. Одно произведение может быть привязано к нескольким жанрам.
REVIEWS: отзывы на произведения. Отзыв привязан к определённому произведению.
COMMENTS: комментарии к отзывам. Комментарий привязан к определённому отзыву.
- Пользователь отправляет POST-запрос с параметром email на
/api/v1/auth/email/
-
YaMDB отправляет письмо с кодом подтверждения (confirmation_code) на адрес email (функция в разработке).
-
Пользователь отправляет POST-запрос с параметрами email и confirmation_code на
`/api/v1/auth/token/`
в ответе на запрос ему приходит token (JWT-токен).
- Эти операции выполняются один раз, при регистрации пользователя. В результате пользователь получает токен и может работать с API, отправляя этот токен с каждым запросом.
Аноним — может просматривать описания произведений, читать отзывы и комментарии.
Аутентифицированный пользователь (user) — может читать всё, как и Аноним, дополнительно может публиковать отзывы и ставить рейтинг произведениям (фильмам/книгам/песенкам), может комментировать чужие отзывы и ставить им оценки; может редактировать и удалять свои отзывы и комментарии.
Модератор (moderator) — те же права, что и у Аутентифицированного пользователя плюс право удалять и редактировать любые отзывы и комментарии.
Администратор (admin) — полные права на управление проектом и всем его содержимым. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.
Администратор Django — те же права, что и у роли Администратор.
Склонировать репозиторий себе:
git clone git@github.com:ggastly/api_yamdb.git
Зайти в папку с проектом:
cd api_yamdb
Cоздать и активировать виртуальное окружение:
python3 -m venv env
source env/bin/activate
Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
Создать в проекте файл .env, в нем указать SECRET_KEY="любой плейсхолдер".
Зайти в папку с файлом manage.py:
cd api_yamdb
Выполнить миграции:
python3 manage.py migrate
Для запуска сервера разработки, находясь в директории проекта выполните команды:
python manage.py createsuperuser
python manage.py runserver
Проект запущен и доступен по адресу localhost:8000.