Проект YaMDb собирает отзывы пользователей на произведения. Сами произведения в YaMDb не хранятся, здесь нельзя посмотреть фильм или послушать музыку. Произведения делятся на категории, такие как «Книги», «Фильмы», «Музыка».
- Реализован REST API.
- Используется аутентификация с помощью JWT-token.
- Поддерживает методы GET, POST, PUT, PATCH, DELETE.
- Ресурс auth: аутентификация.
- Ресурс users: пользователи.
- Ресурс titles: произведения, к которым пишут отзывы (определённый фильм, книга или песенка).
- Ресурс categories: категории (типы) произведений («Фильмы», «Книги», «Музыка»). Одно произведение может быть привязано только к одной категории.
- Ресурс genres: жанры произведений. Одно произведение может быть привязано к нескольким жанрам.
- Ресурс reviews: отзывы на произведения. Отзыв привязан к определённому произведению.
- Ресурс comments: комментарии к отзывам. Комментарий привязан к определённому отзыву.
- Аноним — может просматривать описания произведений, читать отзывы и комментарии.
- Аутентифицированный пользователь (user) — может читать всё, как и Аноним, может публиковать отзывы и ставить оценки произведениям (фильмам/книгам/песенкам), может комментировать отзывы; может редактировать и удалять свои отзывы и комментарии, редактировать свои оценки произведений. Эта роль присваивается по умолчанию каждому новому пользователю.
- Модератор (moderator) — те же права, что и у Аутентифицированного пользователя, плюс право удалять и редактировать любые отзывы и комментарии.
- Администратор (admin) — полные права на управление всем контентом проекта. Может создавать и удалять произведения, категории и жанры. Может назначать роли пользователям.
- Суперюзер Django обладает правами администратора, пользователя с правами admin.
- Склонировать репозиторий в командной строке:
git clone https://github.com/IvanFilippov74/yamdb_final.git
Затем перейдите в корневую директорию проекта:
cd yamdb_final/
- В корневой директории создайте файл .env, и заполните его:
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=<ваш_пароль>
DB_HOST=db
DB_PORT=5432
SECRET_KEY=<секретный_ключ_проекта>
- Если Docker не установлен, установите его используя официальную инструкцию:
https://docs.docker.com/engine/install/
- Перейдите в директорию
infra
:
cd infra/
Затем запустите docker-compose, используя команду*:
docker-compose up -d
- Создайте миграции командой:
docker-compose exec web python manage.py migrate
- Подгрузите статику:
docker-compose exec web python manage.py collectstatic --no-input
- Заполните базу данных фикстурами:
docker-compose exec web python manage.py loaddata fixtures.json
- Создайте супер пользователя (кроме пользователя admin):
docker-compose exec web python manage.py createsuperuser
- Проект доступен по адресу
http://localhost/
, для админ-панели используйтеhttp://localhost/admin/
, документацию по api можно посмотреть здесь >http://localhost/redoc/
. - Остановить запущенные контейнеры можно командой
docker-compose stop
, вновь запуститьdocker-compose start
, для остановки и удаления контейнеров используйте командуdocker-compose down -v
.
*Важное примечание для ОС Linux используйте команду sudo
.
** Работа контейнеров продемонстрирована здесь:
- http://158.160.25.236/admin/ - админ-зона.
- http://158.160.25.236/redoc/ - документация к API.
Филиппов Иван