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

## Структура ПО:

* **./exchanger-api/plugins** - папка c плагинами для обменника
* **./exchanger-api/config** - папка c конфигурациями rest-api
* **./exchanger-admin-web/config** - папка c конфигурациями для клиентской части панели администратора
* **./exchanger-client-web/config** - папка c конфигурациями для клиентской части

## Сервисы

* **nginx** - сервис для быстрой и стабильной выдачи vue приложения, а также для proxy rest api и ws
* **mongodb** - сервис основная база данных проекта
* **redis** - сервис для оперативных данных, а также для уведомления других микро сервисов о новом событии;
* **nodejs** - сервис основная платформа

#### NodeJS сервисы:

* **(s) ex-api-http** -сервис предоставляет REST-API (основной сервис работает в cluster режиме);
* **(s) ex-ws** - сервис предоставляет WebSocket соединение с клиентами и админ-панелью, отвечающую за real-time действия;
* **(s) ex-parser-rate** - сервис анализирует курс в разных источниках, обрабатывает их и обновляет в базе данных;
* **(s) ex-cron** - сервис проверяет состояние сервера, считает количество посещений, производит очистку ненужных данных ;
* **(s) ex-payout-service** - сервис обрабатывает заявки, которые отмечены как оплаченные или готовы к выплате (если активен авто- или полуавтоматический обмен, и API платежных систем настроены);
* **(s) ex-modules-service** - сервис обрабатывает по крону задачи дополнительных модулей
* **(s) ex-notification-service** -сервис отправляет уведомления клиенту и администратору посредством электронной почты и распространенных мессенджеров;
* **(s) ex-logstash** - отправка логов в систему логирования  logstash [**elasticsearch**](https://www.elastic.co/what-is/elk-stack) \
  (по умолчанию логи отправляются разработчикам ПО BoxExchanger при необходимости можно [отключить отправку логов разработчикам](/dlya-razrabotchikov/otpravka-logov-razrabotchikam.md))
* **(s) ex-blacklist-bc** - сервис сервис проверяет и обновляет состояние черного списка из сервиса bestchange.org
* **(s) ex-migrate** - сервис проверяет актуальность данных в базе и приводит их к единому стандарту;
* **(s) ex-seed** - сервис загружает основные данные в обменник;

#### &#x20;<a href="#user-content-struktura-failov" id="user-content-struktura-failov"></a>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://manual.boxexchanger.net/dlya-razrabotchikov/struktura-proekta.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
