advertisements-api — это API-сервис для работы с объявлениями.
api-gateway - REST API для клиентов. Принимает HTTP/JSON, валидирует запросы и проксирует их в backend по gRPC, возвращая ответы в JSON.
ads-service - доменная логика объявлений. Реализует операции CRUD для объявлений и через gRPC обращается к advertisements-storage для чтения и записи данных.
category-service - сервис категорий. Обрабатывает создание, получение, обновление и удаление категорий и проксирует запросы к advertisements-storage по gRPC.
search-service - сервис поиска объявлений. Принимает поисковые запросы (например, по title) и выполняет поиск через advertisements-storage (в текущей версии — SQL в Postgres, в будущем может быть заменён на поисковый движок).
users-service - сервис пользователей и авторизации. Отвечает за регистрацию, логин (JWT) и работу с профилем, а данные и проверку учетных данных выполняет через advertisements-storage.
advertisements-storage - единый сервис доступа к данным. Реализует gRPC API и содержит всю работу с Postgres (репозитории и SQL) для пользователей, категорий, объявлений и поиска.
db (PostgreSQL) - база данных проекта. Хранит пользователей, категории и объявления, а также ограничения и индексы (email, alias и т.п.).
Перед запуском необходимо создать файл .env в корне проекта.
DB_USER=postgres
DB_PASSWORD=1234
DB_NAME=ads
JWT_SECRET=SuperSecretKeyForJWT@2024!WithSecureRandomBytes12345
docker compose up -d --builddocker compose up -ddocker compose downdocker compose restartdocker compose psdocker compose logs -fmake proto-storage
make proto-category
make proto-search
make proto-user
make proto-gateway
make proto-all
MIT
