Skip to content

likip3/NotificationService

Repository files navigation

Notification Service: Readme

Этот проект представляет собой распределённый сервис для отправки уведомлений через Email, SMS и Push. Он использует Kafka как брокер сообщений, PostgreSQL для хранения данных и Loki для логирования.

Архитектура

Сервис состоит из нескольких компонентов:

  1. Notification Gateway – API для получения запросов на отправку уведомлений.
  2. Email Service – обработка и отправка Email-уведомлений.
  3. SMS Service – обработка и отправка SMS-уведомлений через API SMS Aero.
  4. Push Notification Service – обработка и отправка Push-уведомлений через FireBase.
  5. Message Broker – Kafka используется для асинхронного обмена сообщениями между сервисами.
  6. Database – PostgreSQL для хранения состояния уведомлений.
  7. Loki – сбор и анализ логов.

Запуск проекта

Проект полностью контейнеризован с использованием Docker Compose. Или Частично в Visual Studio для отладки.


Использование

API

Запросы на отправку уведомлений отправляются через Notification Gateway. Пример запроса:

POST /api/notifications/send

{
  "type": "email",
  "recipients": "user1@example.com,user2@example.com",
  "message": "Hello, this is a test email!",
  "subject": "Test Email"
}

По��держиваемые типы уведомлений:

  • email
  • sms
  • push

Логирование

Для логирования используется Loki. Все логи можно просматривать через Grafana.


Документация API

Email Service

Email Service использует SMTP для отправки писем. Конфигурация задаётся через appsettings.json или переменные окружения:

{
  "EmailSettings": {
    "SmtpServer": "smtp.example.com",
    "SmtpPort": 587,
    "SenderEmail": "your_user",
    "SenderPassword": "your_password"
  }
}

SMS Service

SMS Service отправляет сообщения через SMS Aero. Конфигурация задаётся через appsettings.json:

{
  "SMS": {
    "Email": "your_email",
    "ApiKey": "your_api_key"
  }
}

Push Notification Service

Push Service принимает запросы через Kafka. Пример сообщения:

{
  "type": "push",
  "recipients": "device_id_1,device_id_2",
  "message": "Test push notification"
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published