Технологический стек
iEXExchanger — программная платформа для создания и управления сервисом электронного обмена валют.
Система объединяет серверную часть, административную панель, публичный сайт, базу данных, кеш, очереди, файловое хранилище и инфраструктуру для запуска фоновых процессов.
Технологический стек подобран так, чтобы проект мог работать с большим количеством пользователей, заявок, валют, направлений обмена и внешних интеграций.
Архитектура системы
iEXExchanger состоит из трёх основных компонентов:
Backend
Выполняет бизнес-логику, расчёты, обработку заявок и работу с данными
Административная панель
Используется владельцем проекта, администраторами и операторами
Публичный сайт
Предоставляет клиентам интерфейс обменного сервиса
Как работает система
Основная логика работы iEXExchanger выглядит следующим образом:
Клиент открывает публичный сайт.
Публичный сайт получает данные направлений, валют и курсов через API.
Клиент выбирает направление и создаёт заявку.
Backend проверяет введённые данные и настройки направления.
Система рассчитывает суммы, комиссии, курсы и лимиты.
Информация о заявке сохраняется в PostgreSQL.
Фоновые действия передаются в очередь Redis.
Laravel Horizon обрабатывает уведомления, webhooks, файлы и другие задачи.
Laravel Reverb передаёт обновления в реальном времени.
Администратор или оператор обрабатывает заявку через административную панель.
Такое разделение позволяет выполнять тяжёлые операции в фоне и не задерживать работу сайта.
Языки программирования
В iEXExchanger используется несколько языков программирования. Каждый из них отвечает за определённую часть системы.
PHP
Backend, API, бизнес-логика и фоновые задачи
TypeScript
Административная панель и публичный сайт
HTML и Blade
Шаблоны страниц, писем и системных сообщений
CSS и SCSS
Стилизация интерфейсов и темы оформления
SQL
Работа со структурой и данными PostgreSQL
Shell
Установка, развёртывание и серверные скрипты
Go
Служебные инструменты для работы с базами данных
Backend
Backend — центральная часть iEXExchanger.
Он отвечает за бизнес-логику системы и обработку всех основных операций.
iEXExchanger использует Laravel как основу, но бизнес-логика обменного сервиса реализуется внутри самой платформы.
Административная панель
Административная панель используется для управления обменным сервисом.
Публичный сайт
Публичный сайт — клиентская часть обменного сервиса.
Базы данных и хранение
iEXExchanger использует несколько типов хранилищ.
Каждое из них решает отдельную задачу.
PostgreSQL
Основные постоянные данные
Redis
Быстрые временные данные, кеш и очереди
PostgreSQL
PostgreSQL 18 используется как основная реляционная база данных.
PostgreSQL используется для данных, которые должны сохраняться после перезапуска сервера и оставаться доступными длительное время.
Redis
Redis используется для быстрого временного хранения данных.
Redis не заменяет PostgreSQL. Он используется как быстрое вспомогательное хранилище.
Серверная инфраструктура
Для запуска iEXExchanger используется несколько серверных компонентов.
Nginx
Принимает HTTP-запросы и направляет их нужному приложению
PHP-FPM
Выполняет PHP-код Backend
Node.js
Запускает Angular SSR
PM2
Управляет процессом публичного сайта
Supervisor
Управляет фоновыми Backend-процессами
Docker
Позволяет запускать компоненты в контейнерах
FASTPANEL
Используется для управления сервером
Debian 12
Основная серверная операционная система
Nginx
Nginx используется как веб-сервер и reverse proxy.
Он принимает входящие запросы и определяет, куда их передать.
PHP-FPM
PHP-FPM выполняет PHP-код Backend.
Он принимает запрос от Nginx, запускает Laravel и возвращает результат.
Node.js
Node.js используется для запуска публичного сайта в режиме Angular SSR.
Он работает как отдельный серверный процесс и формирует HTML страниц.
PM2
PM2 используется для управления процессом Angular SSR.
Он позволяет:
запускать приложение;
автоматически перезапускать его при ошибке;
запускать процесс после перезагрузки сервера;
смотреть статус;
просматривать логи;
перезапускать приложение после обновления.
Supervisor
Supervisor используется для управления долгоживущими Backend-процессами.
Через него могут запускаться:
Laravel Horizon;
обработчики очередей;
Laravel Reverb;
Laravel Pulse Worker;
отдельные служебные процессы.
Если процесс завершится с ошибкой, Supervisor может запустить его повторно.
Docker
Docker используется для контейнерного развёртывания.
Он позволяет запускать отдельные компоненты в изолированной среде.
Например:
Docker не является обязательным для каждого способа установки. Проект также может работать при обычной установке компонентов на сервер.
FASTPANEL
FASTPANEL используется для управления сервером через веб-интерфейс.
Debian 12
Debian 12 используется как основная серверная операционная система.
Инструменты разработки
Для разработки, проверки и сборки iEXExchanger используется набор дополнительных инструментов.
Vite
Сборка административной панели
PHPUnit
Тестирование Backend
Vitest
Тестирование frontend-компонентов
PHPStan
Статический анализ PHP
ESLint
Проверка TypeScript и Vue
PHPUnit
PHPUnit используется для автоматического тестирования Backend.
Vitest
Vitest используется для тестирования frontend-кода.
PHPStan
PHPStan выполняет статический анализ PHP-кода.
ESLint
ESLint используется для проверки TypeScript, JavaScript и Vue-кода.
Он помогает поддерживать единые правила и находить потенциальные ошибки.
Последнее обновление
Это было полезно?