Над проектом Review and API for YaMDb работают:
В настоящее время изучаем Django, в проекте использеуем следующие фреймфорки:
- 🔭 django
- 🔭 djangorestframework
- 🔭 python-dotenv
- 🔭 djangorestframework-simplejwt
- 🔭 docker
- 🔭 docker-compose
- 🔭 GitHub Actions
Проект YaMDb собирает отзывы пользователей на различные произведения.
Проект доступен анонимным и аутентифицированным пользователям. В данном проекте используется аутентификация по JWT-токену.
1. Работа с отзывами:
- Получение списка всех отзывов. Позволяет получить список всех отзывов. Права доступа: Доступно без токена; - Добавление нового отзыва. Позволяет добавить новый отзыв. Пользователь может оставить только один отзыв на произведение. Права доступа: Аутентифицированные пользователи; - Получение отзыва по id. Позволяет получить отзыв по id для указанного произведения. Права доступа: Доступно без токена; - Частичное обновление отзыва по id. Позволяет частичное обновить отзыв по id. Права доступа: Автор отзыва, модератор или администратор.; - Удаление отзыва по id. Позволяет удалить отзыв по id. Права доступа: Автор отзыва, модератор или администратор.2. Работа с комментариями:
- Получение списка всех комментариев к отзыву. Позволяет получить список всех комментариев к отзыву. Права доступа: Доступно без токена; - Добавление комментария. Позволяет добавить новый комментарий для отзыва. Права доступа: Аутентифицированные пользователи; - Получение комментария к отзыву. Позволяет получить комментарий для отзыва по id. Права доступа: Доступно без токена; - Частичное обновление комментария к отзыву. Позволяет частично обновить комментарий к отзыву по id. Права доступа: Автор комментария, модератор или администратор; - Удаление комментария к отзыву. Позволяет удалить комментарий к отзыву по id. Права доступа: Автор комментария, модератор или администратор.3. Работа с категориями:
- Получение списка всех категорий. Позволяет получить список всех категорий. Права доступа: Доступно без токена; - Добавление новой категории. Позволяет создать категорию. Права доступа: Администратор; - Удаление категории. Позволяет удалить категорию. Права доступа: Администратор.4. Работа с категориями жанров:
- Получение списка всех жанров. Позволяет получить список всех жанров. Права доступа: Доступно без токена; - Добавление жанра. Позволяет добавить жанр. Права доступа: Администратор; - Удаление жанра. Позволяет удалить жанр. Права доступа: Администратор.5. Работа с произведениями, к которым пишут отзывы (определённый фильм, книга или песенка)
- Получение списка всех произведений. Позволяет получить список всех объектов. Права доступа: Доступно без токена; - Добавление произведения. Позволяет добавить новое произведение. Права доступа: Администратор. Нельзя добавлять произведения, которые еще не вышли (год выпуска не может быть больше текущего). При добавлении нового произведения требуется указать уже существующие категорию и жанр; - Получение информации о произведении. Позволяет получит информацию о произведении. Права доступа: Доступно без токена; - Частичное обновление информации о произведении. Позволяет обновить информацию о произведении. Права доступа: Администрато; - Удаление произведения. Позволяет удалить произведение. Права доступа: Администратор.6. Работа с пользователями:
- Получение списка всех пользователей. Позволяет получить список всех пользователей. Права доступа: Администратор; - Добавление пользователя. Позволяет добавить нового пользователя. Права доступа: Администратор. Поля email и username должны быть уникальными; - Получение пользователя по username. Позволяет получить пользователя по username. Права доступа: Администратор; - изменение данных пользователя по username. Позволяет изменить данные пользователя по username. Права доступа: Администратор. Поля email и username должны быть уникальными.sudo apt update
sudo apt upgrade
sudo apt install docker
git clone https://github.com/Esedess/infra_sp2.git
cd infra_sp2
sudo docker compose -f infra/docker-compose.yaml up
# или воспользоваться Make
make build
sudo docker compose -f infra/docker-compose.yaml exec web python3 manage.py makemigrations reviews
sudo docker compose -f infra/docker-compose.yaml exec web python3 manage.py migrate
# или воспользоваться Make
make migrate
sudo docker compose -f infra/docker-compose.yaml exec web python3 manage.py createsuperuser
# или воспользоваться Make
make createsuperuser
sudo docker compose -f infra/docker-compose.yaml exec web python3 manage.py collectstatic --no-input
# или воспользоваться Make
make collectstatic
sudo docker compose -f infra/docker-compose.yaml down -v
# или воспользоваться Make
make down
sudo docker compose -f infra/docker-compose.yaml up -d --build
# или воспользоваться Make
make rebuild
sudo docker compose -f infra/docker-compose.yaml exec web python3 manage.py import_csv
# или воспользоваться Make
make import_csv
sudo docker compose -f infra/docker-compose.yaml exec web python manage.py dumpdata > fixtures.json
# или воспользоваться Make
make dumpdb
Создать файл .env в директории infra/ Так же в директории infra есть .env.example с описанием возможных полей.