docs/README.md

135 lines
7.7 KiB
Markdown
Raw Permalink Normal View History

2023-01-10 07:46:09 +00:00
# Общая документация по сервисам / микросервисам
2023-01-03 06:59:24 +00:00
2023-01-10 11:45:44 +00:00
Документация так же имеется в формате [**Wiki**](https://penahub.gitlab.yandexcloud.net/pena-services/docs/-/wikis/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5)
2023-01-10 08:17:05 +00:00
2023-01-03 09:08:58 +00:00
## Архитектура:
2023-01-03 06:59:24 +00:00
2023-01-03 09:08:58 +00:00
- [**Архитектура сервисов NodeJS**](./architecture/nodejs/README.md)
- [**Архитектура сервисов Golang**](./architecture/golang/README.md)
2023-01-10 07:46:09 +00:00
## Переменные окружения:
2023-01-10 08:13:56 +00:00
- [**Переменные окружения сервисов / микросервисов**](./environment/README.md)
## Swagger:
2023-01-10 09:19:48 +00:00
- [**Информация о swagger'е**](./swagger/README.md)
## Комманды:
2023-01-10 11:47:25 +00:00
- [**Комманды сервисов NodeJS**](./commands/nodejs/README.md)
## Развёртывание:
2023-10-31 22:42:20 +00:00
Подробно о развёртывании можно почитать [**тут**](https://penahub.gitlab.yandexcloud.net/devops/docs)
2023-10-31 22:48:35 +00:00
``` c4plantuml
2023-10-31 22:42:20 +00:00
....
@startuml
2023-10-31 22:43:00 +00:00
!include C4_Context.puml
2023-10-31 22:42:20 +00:00
title Связи между компонентами PenaHUB
Person(marketplaceFront, "Marketplace", "Платформа, на которой пользователь приобретает подписки на наши сервисы")
Person(adminFront, "Admin", "Админка. Техподдержка, статистика, настройки")
Person(amoTemplategenFront, "AmoTemplategen", "Интеграция с amocrm. Позволяет шаблонизировать docx")
Person(servicesLanding, "Landing", "Лендинг с формой обратной связи")
Person(squizFront, "Squiz", "Фронт генератора опросов")
Person(metricaFront, "Metrica", "Фронт сервиса настройки сборщика метрик телеграм ботов")
System(authService, "AuthService", "Авторизация, Регистрация, Обновление токена, Изменение пароля")
System(customerService, "Customer", "Аккаунт клиента, Кошелёк, Корзина, Оплата, Покупка тарифов")
System(discountService, "Discount", "Создание скидок, Вычисление стоимости корзины")
System(adminBackend, "AdminBackend", "Создание тарифов, Роли, Привилегии, Допуски")
System(socialAuthService, "SocialAuth", "Авторизация через сторонние сервисы")
System(cbrfWorker, "CBRF", "Хранение котировок валют по ЦБ и конвертация валюты")
System(heryvym, "Heruvym", "Техподдержка")
System(trashlog, "Trashlog", "Логпомойка поверх Clickhouse")
System(treasurer, "Treasurer", "Платёжки, Генерация платёжной ссылки и колбеки на изменение статуса платежа")
System(feedbackSvc, "feedbackService", "Получить данные с формы и отправить их в телеграм канал")
System(verification, "VerificationService", "Сохранение верификационных документов и подтверждение статуса верификации пользователя")
System(templategenService, "templategenService", "Продуктовый сервис шаблонизации docx")
System(templategenWorker, "templategenWorker", "Воркер, выполняющий шаблонизацию документа")
System(squizService, "SquizService", "Продуктовый сервис опросника")
System(squizStorer, "squizStorer", "Сервис сохранения файлов кастомизации опроса")
System(squizAnswerer, "squizAnswerer", "Выдача опросов и сохранение результатов")
System(penaDisk, "penaDisk", "Промежуточный сервис хранения файлов пользователей")
System(metricaService, "metricaService", "Продуктовый сервис сбора статистики телеграм ботов")
System(sink, "sink", "Сервис сохранения логов телеграм ботов")
System_Ext(mail_system, "smtp.biz", "")
System_Ext(amocrm, "Amocrm", "")
System_Ext(cbrf, "ЦБРФ", "")
System_Ext(yookasa, "Yookassa", "")
System_Ext(s3, "YandexS3", "")
System_Ext(bot, "ClientBot", "")
Rel(treasurer, yookasa, "получение платёжной ссылки")
Rel(cbrfWorker, cbrf, "курс валют")
Rel_Back(yookasa, treasurer, "Вебхук оплаты")
Rel(templategenService, mail_system, "Отправка акта")
Rel_Back(templategenService, amocrm, "создание аккаунта")
Rel(templategenWorker, amocrm, "Данные для шаблонизации")
Rel(templategenWorker, penaDisk, "Сохранение результатов")
Rel(penaDisk, templategenWorker, "Получение шаблона")
Rel(templategenService, penaDisk, "Сохранение шаблона")
Rel(penaDisk, s3, "Сохранение файла")
Rel_Back(penaDisk, s3, "Получение файла")
Rel_Back(sink, bot, "Передача логов")
Rel(sink, trashlog, "Сохранение логов в помойку")
Rel(squizStorer, s3, "Сохранение файла кастомизации")
Rel(squizAnswerer, trashlog, "Сохранение ответов в помойку")
Rel(verification, s3, "Сохранение файлов верификации")
Rel(customerService, treasurer, "Запрос платёжной ссылки")
Rel(treasurer, customerService, "Пополнение кошелька, запись в историю")
Rel(customerService, cbrfWorker, "Пересчёт кошелька пользователя, вычисление стоимости корзины в нужной валюте")
Rel_Neighbor(socialAuthService, authService, "Создание модели входа для пользователя внешней системы")
Rel_Back(adminBackend, customerService, "Список тарифов и привилегий")
Rel(templategenService, adminBackend, "Публикация привилегий")
Rel(templategenService, customerService, "Запись в историю о окончании привилегии")
Rel(customerService, discountService, "Вычисление стоимости корзины")
Rel(customerService, verification, "Получение данных верификации")
Rel(customerService, authService, "email для отправки акта")
Rel(customerService, templategenService, "запрос шаблонизации акта проделанных работ")
Rel(servicesLanding, feedbackSvc, "")
Rel(servicesLanding, heryvym, "")
Rel(metricaFront, metricaService, "")
Rel(metricaFront, authService, "")
Rel(metricaFront, heryvym, "")
Rel(squizFront, squizService, "")
Rel(squizFront, squizStorer, "")
Rel(squizFront, squizAnswerer, "")
Rel(squizFront, authService, "")
Rel(squizFront, heryvym, "")
Rel(amoTemplategenFront, templategenService, "")
Rel(amoTemplategenFront, heryvym, "")
Rel(adminFront, adminBackend, "")
Rel(adminFront, discountService, "")
Rel(adminFront, customerService, "")
Rel(adminFront, authService, "")
Rel(adminFront, heryvym, "")
Rel(adminFront, verification, "")
Rel(adminFront, templategenService, "")
Rel(adminFront, squizService, "")
Rel(adminFront, penaDisk, "")
Rel(adminFront, sink, "")
Rel(marketplaceFront, adminBackend, "")
Rel(marketplaceFront, discountService, "")
Rel(marketplaceFront, customerService, "")
Rel(marketplaceFront, authService, "")
Rel(marketplaceFront, heryvym, "")
Rel(marketplaceFront, verification, "")
Rel(marketplaceFront, socialAuthService, "")
Rel(marketplaceFront, penaDisk, "")
2023-10-31 22:43:49 +00:00
@enduml
....
2023-10-31 22:48:35 +00:00
```