Skip to content

chelavik/Marketplace-API

Repository files navigation

Описание проекта

Проект реализует REST API для маркетплейса, позволяющего управлять товарами, заказами и пользователями. Проект использует базу данных PostgreSQL для хранения информации о пользователях, товарах и заказах, а также запускается через Docker Compose.

Функционал проекта

  1. Управление товарами
    • Пользователь может добавлять, редактировать и удалять товары.
    • Пользователь может просматривать список товаров с фильтрами (категория, цена).
  2. Создание заказов
    • Пользователь может создавать заказ с выбранными товарами.
    • Пользователь может видеть статус заказа (новый, в обработке, выполнен).
  3. Управление данными пользователей
    • Все данные о пользователях, товарах и заказах хранятся в базе данных PostgreSQL.
  4. Структура базы данных
    • 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).
  5. Запуск проекта через Docker Compose
    • В файле docker-compose.yml описаны контейнеры для PostgreSQL и PgAdmin.
  6. CI
    • Настройка CI через GitLab CI с автоматическим запуском тестов.

Рейтинг товаров

  • Пользователь может поставить товару оценку (от 1 до 5 звёзд).
  • Рейтинг товара пересчитывается после каждой новой оценки.
  • Средний рейтинг отображается вместе с информацией о товаре.

Отзывы пользователей

  • Пользователь может оставить текстовый отзыв о товаре.
  • Отзывы отображаются на странице товара.
  • Отзывы можно сортировать по дате или рейтингу.

Избранные товары

  • Пользователь может добавлять товары в избранное и просматривать их в отдельном разделе.
  • Избранные товары сохраняются в профиле пользователя.

Интеграционные тесты

Интеграционные тесты покрывают следующий функционал:

  • проверка создания, чтения, обновления и удаления сущностей (CRUD);
  • работа API при взаимодействии с реальной базой данных PostgreSQL в изолированной среде (с использованием Testcontainers).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •