Интернет магазин
О проекте
Разработал интернет-магазин с разделением frontend и backend на независимые приложения. Backend реализован на Django и Django REST Framework и предоставляет REST API для работы с пользователями, каталогом, корзиной и заказами.
Реализовал регистрацию и аутентификацию пользователей с использованием JWT, разграничение доступа к пользовательским данным и защиту операций с корзиной и заказами.
В магазине реализованы каталог товаров и категорий, просмотр отдельных товаров, загрузка изображений, корзина с добавлением, изменением количества и удалением товаров, а также оформление заказов с сохранением состава заказа и цен на момент покупки.
Реализовал интеграцию с платёжной системой ЮKassa. Платёжная логика отделена от сущности заказа: для каждого заказа могут существовать отдельные попытки оплаты, что позволяет повторно оплачивать неоплаченный заказ после истечения или неудачного завершения предыдущей платёжной сессии. Статус оплаты обновляется после получения информации о результате платежа.
Проект развёрнут в production-среде с использованием Docker Compose и Nginx. Nginx используется как reverse proxy и отвечает за раздачу frontend, статических и медиа-файлов, а также HTTPS. Данные приложения хранятся в PostgreSQL.