ads-platform

module
v0.0.0-...-a6775e9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2026 License: MIT

README

Ads Platform

Микросервисная платформа для публикации и поиска объявлений.

🏗️ Архитектура

  • Auth User Service — аутентификация, регистрация, JWT
  • Ad Search Service — управление объявлениями, категории, медиа (MongoDB)
  • GraphQL Gateway — единый GraphQL API, авторизация, маршрутизация к gRPC-сервисам
  • Базы данных: PostgreSQL (постянные данные), MongoDB (метаданные медиа)
  • Фронтенд — простой интерфейс на Vue 3 (опционально)

🛠 Технологии

Компонент Технологии
Backend Go, gRPC, GraphQL, JWT
Базы данных PostgreSQL, MongoDB
API Gateway GraphQL (graphql-go)
Фронтенд Vue 3, Tailwind CSS, Fetch API
Контейнеризация Docker, Docker Compose

🚀 Быстрый старт

Предварительные требования
  • Go 1.26+
  • Docker & Docker Compose
  • Make (для команд)
Запуск всех баз данных
make up
Запуск микросервисов

В отдельных терминалах:

# Терминал 1: Auth Service
make run-auth

# Терминал 2: Ad Search Service
make run-ad

# Терминал 3: GraphQL Gateway
make run-gateway

Доступ к API

GraphQL Playground: http://localhost:8080/graphql

Auth gRPC: порт 50051

Ad-search gRPC: порт 50052

Фронтенд

Просто открой frontend/index.html в браузере.

📦 Основные команды Makefile

Команда Описание
make up Запустить все базы данных (Docker Compose)
make down Остановить все контейнеры
make run-auth Запустить Auth Service
make run-ad Запустить Ad Search Service
make run-gateway Запустить GraphQL Gateway
make test-auth Запустить тесты Auth Service
make test-ad Запустить тесты Ad Search Service
make test-gateway Запустить тесты Gateway
make tidy Обновить зависимости во всех сервисах

🗂 Структура проекта

ads-platform/
├── services/
│   ├── auth-user/          # Auth User Service
│   ├── ad-search/          # Ad Search Service
│   └── gateway/            # GraphQL Gateway
├── frontend/               # Vue 3 фронт (index.html)
├── proto/                  # Протофайлы (.proto)
├── docker-compose.yml      # Базы данных
├── Makefile                # Команды для запуска
└── README.md               # Этот файл

🧪 Тестирование

# Все тесты
make test-auth
make test-ad
make test-gateway

📄 Документация по сервисам

💡 Пример GraphQL запроса

mutation {
  login(email: "user@example.com", password: "123456") {
    accessToken
  }
}

mutation {
  createAd(input: {
    title: "iPhone 15 Pro",
    price: 99900,
    categoryId: "1"
  }) {
    id
    title
    price
  }
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL