Проект реализует REST API для маркетплейса, позволяющего управлять товарами, заказами и пользователями. Проект использует базу данных PostgreSQL для хранения информации о пользователях, товарах и заказах, а также запускается через Docker Compose.
- Управление товарами
- Пользователь может добавлять, редактировать и удалять товары.
- Пользователь может просматривать список товаров с фильтрами (категория, цена).
- Создание заказов
- Пользователь может создавать заказ с выбранными товарами.
- Пользователь может видеть статус заказа (новый, в обработке, выполнен).
- Управление данными пользователей
- Все данные о пользователях, товарах и заказах хранятся в базе данных PostgreSQL.
- Структура базы данных
- users — таблица пользователей (id, name, email, дополнительные поля).
- products — таблица товаров (id, name, description, price, category).
- orders — таблица заказов (id, user_id, order_date, status).
- order_items — таблица товаров в заказе (id, order_id, product_id, quantity, price).
- Запуск проекта через Docker Compose
- В файле
docker-compose.ymlописаны контейнеры для PostgreSQL и PgAdmin.
- В файле
- CI
- Настройка CI через GitLab CI с автоматическим запуском тестов.
- Пользователь может поставить товару оценку (от 1 до 5 звёзд).
- Рейтинг товара пересчитывается после каждой новой оценки.
- Средний рейтинг отображается вместе с информацией о товаре.
- Пользователь может оставить текстовый отзыв о товаре.
- Отзывы отображаются на странице товара.
- Отзывы можно сортировать по дате или рейтингу.
- Пользователь может добавлять товары в избранное и просматривать их в отдельном разделе.
- Избранные товары сохраняются в профиле пользователя.
Интеграционные тесты покрывают следующий функционал:
- проверка создания, чтения, обновления и удаления сущностей (CRUD);
- работа API при взаимодействии с реальной базой данных PostgreSQL в изолированной среде (с использованием Testcontainers).