Skip to content

Repository files navigation

Online Market — микросервисное приложение для онлайн-магазина

Описание

Online Market — это микросервисное backend-приложение, обеспечивающее работу онлайн-магазина.
Система включает независимые сервисы, отвечающие за аутентификацию пользователей, загрузку и поиск товаров, управление корзиной и оформление заказов.
В качестве основной базы данных используется PostgreSQL, для полнотекстового поиска — Elasticsearch, а для хранения корзин и blacklist-токенов — Redis.

Архитектура

Проект состоит из следующих микросервисов:

  • Auth Service — регистрация, аутентификация, refresh/logout, управление токенами и ролями пользователей.
  • Catalog Service — карточки товаров и операции с каталогом.
  • Import Service — приём CSV/JSON-файлов, валидация и загрузка данных в PostgreSQL.
  • ETL / Indexer — перенос данных из PostgreSQL в Elasticsearch (инкрементально, по времени обновления).
  • Search Service — полнотекстовый поиск товаров с фильтрацией, сортировкой и фасетами.
  • Cart Service — хранение корзины пользователя в Redis с фиксацией цен на момент добавления.
  • Orders Service — создание и хранение заказов, транзакционное уменьшение остатков товаров.
  • API Gateway — единая точка входа: проверка JWT и маршрутизация запросов между сервисами.

Технологии

  • FastAPI — основной web-фреймворк
  • PostgreSQL — основная база данных
  • Redis — хранилище корзин и blacklist refresh-токенов
  • Elasticsearch — поисковый движок и фасетные выборки
  • SQLModel / SQLAlchemy — ORM для PostgreSQL
  • Docker / Docker Compose — контейнеризация и оркестрация
  • Pydantic / dotenv — конфигурации и типизация данных
  • JWT (PyJWT) — аутентификация и авторизация пользователей

Доступы к Swagger

Сервис Swagger UI
Auth Service http://localhost:8001/docs
Catalog Service http://localhost:8002/docs
Import Service http://localhost:8003/docs
Search Service http://localhost:8004/docs
Cart Service http://localhost:8005/docs
Orders Service http://localhost:8006/docs
API Gateway http://localhost:8080/docs

Каждый сервис предоставляет собственную Swagger-документацию с возможностью авторизации по JWT-токену.

About

Модульный e-commerce backend: поиск, корзина, заказы.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages