Демо-режим! Все данные только для просмотра. Изменения не сохраняются.
👨💻 Документация для разработчиков
Информация
Slug:
index.html
Обновлено:
30.05.2026 15:03
30.05.2026 15:03
Размер:
10.24 KB
10.24 KB
Путь:
/resources/docs/developer/index.html
Ссылки
Публичная ссылка:
Ссылка в админке:
👨💻 Документация для разработчиков
Техническая документация системы DEXA - обмен валют с криптовалютами.
Архитектура
- Фреймворк: Laravel 10
- База данных: MySQL 8.0+
- Фронтенд: Bootstrap 5, jQuery
- Кэширование: Redis
- Очереди: Laravel Horizon
- Аутентификация: Multiple guards (web, admin)
Структура проекта
app/
├── Http/
│ ├── Controllers/
│ │ ├── Admin/ # Админ-контроллеры
│ │ │ ├── AuthController.php
│ │ │ ├── DashboardController.php
│ │ │ ├── DocumentationController.php
│ │ │ └── ...
│ │ ├── Api/ # API контроллеры
│ │ └── ... # Публичные контроллеры
│ └── Middleware/ # Промежуточное ПО
├── Models/ # Модели Eloquent
├── Services/ # Бизнес-логика
└── ...
Разделы документации
- Архитектура системы - обзор, компоненты, стек технологий
- API интеграция - REST API эндпоинты, конфигурация внешних API
- База данных - структура и миграции
- Безопасность - архитектура безопасности, ролевая модель
- Развертывание - деплой на сервер, настройка продакшена
- Разработка - руководство по коду
- Логика работы с валютами - типы транзакций, наценки, синхронизация
- Сервисы системы - руководство по ключевым сервисам
API документация
Публичные API
GET /api/partners/{cityId}- партнеры по городуGET /api/exchange/track/{orderNumber}- отслеживание заявкиPOST /calculate- расчет обмена
Админ API
GET /admin/api/orders/get-rates- получение курсовPOST /admin/api/update-partner-external-rates- обновление курсов партнераGET /admin/api/exchange-rates/check-external- проверка внешних API
Авторизация
API использует:
- CSRF токены для веб-форм
- Сессии для админки
- API ключи для внешних интеграций (в разработке)
База данных
Основные таблицы:
- currencies - валюты (крипто, фиат, токены)
- cities - города партнеров
- partners - точки обмена
- exchange_orders - заявки на обмен
- exchange_rates - курсы обмена
- external_rates - внешние курсы (API)
- exchange_apis - конфигурации API
- admins - администраторы системы
- users - клиенты
- user_wallets - кошельки пользователей
- settings - настройки системы
- pages - статические страницы
Разработка
Требования
- PHP 8.1+
- Composer 2.0+
- Node.js 16+ (для фронтенда)
- MySQL 8.0+ или MariaDB 10.4+
- Redis 6.0+
Установка для разработки
# Клонирование репозитория
git clone [repository-url]
cd dexa
# Установка зависимостей PHP
composer install
# Установка зависимостей Node.js
npm install
# Копирование конфигурации
cp .env.example .env
# Генерация ключа
php artisan key:generate
# Настройка базы данных в .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dexa
DB_USERNAME=root
DB_PASSWORD=
# Запуск миграций
php artisan migrate
# Запуск сидов
php artisan db:seed
# Запуск сервера разработки
php artisan serve
Код-стайл
- PSR-12 для PHP
- ES6+ для JavaScript
- BEM-подобная методология для CSS
- Комментарии на русском языке
Развертывание
Production требования
- SSL сертификат (обязательно)
- Выделенный сервер или VPS
- Минимум 2GB RAM
- Резервное копирование базы данных
- Мониторинг (New Relic, Sentry)
Деплой процесс
- Настройка сервера (Nginx/Apache)
- Настройка PHP-FPM
- Установка MySQL и Redis
- Настройка Supervisor для очередей
- Настройка крон задач
- Деплой кода
- Миграции и оптимизация
Cron задачи
# Обновление курсов каждые 10 минут
*/10 * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
# Очистка старых сессий
0 0 * * * php /path/to/artisan session:gc >> /dev/null 2>&1
# Резервное копирование БД
0 2 * * * /path/to/backup-script.sh
Безопасность
Меры защиты
- Хеширование паролей (bcrypt)
- CSRF защита всех форм
- Валидация всех входных данных
- Подготовленные SQL запросы
- Шифрование чувствительных данных (API ключи)
- Логирование безопасности
- Rate limiting для API
Рекомендации
Важно: Регулярно обновляйте зависимости, используйте безопасные пароли, настройте WAF и DDoS защиту.
Логирование
Система использует каналы:
- daily: Основные логи приложения
- security: Логи безопасности и аутентификации
- api: Логи API запросов
- external: Логи внешних API интеграций
Тестирование
Доступные типы тестов:
- Unit тесты: PHPUnit для бизнес-логики
- Feature тесты: Тестирование контроллеров
- Browser тесты: Dusk для интерфейса
# Запуск тестов
php artisan test
php artisan test --coverage
php artisan dusk
Контакты для разработчиков
- Техническая поддержка: odeveloper@internet.ru
- Документация: /admin/documentation/developer
- Репозиторий: [ссылка на Git]
Последнее обновление: 30.05.2026 в 15:03
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>👨💻 Документация для разработчиков</title>
<style>
body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; padding: 20px; max-width: 1200px; margin: 0 auto; }
h1 { color: #2c3e50; border-bottom: 2px solid #eee; padding-bottom: 10px; margin-bottom: 20px; }
h2 { color: #34495e; border-bottom: 1px solid #eee; padding-bottom: 5px; margin-top: 30px; }
h3 { color: #7f8c8d; margin-top: 25px; }
p { margin-bottom: 15px; }
ul, ol { margin-bottom: 15px; padding-left: 20px; }
li { margin-bottom: 5px; }
code { background-color: #f8f9fa; padding: 2px 6px; border-radius: 4px; font-family: monospace; }
pre { background-color: #f8f9fa; padding: 15px; border-radius: 8px; overflow-x: auto; border: 1px solid #dee2e6; }
blockquote { border-left: 4px solid #0d6efd; padding-left: 15px; margin-left: 0; color: #666; font-style: italic; }
table { border-collapse: collapse; width: 100%; margin-bottom: 20px; }
th, td { padding: 12px; border: 1px solid #dee2e6; }
th { background-color: #f8f9fa; }
</style>
</head>
<body>
<h1>👨💻 Документация для разработчиков</h1>
<p>Техническая документация системы DEXA - обмен валют с криптовалютами.</p>
<h2>Архитектура</h2>
<ul>
<li><strong>Фреймворк:</strong> Laravel 10</li>
<li><strong>База данных:</strong> MySQL 8.0+</li>
<li><strong>Фронтенд:</strong> Bootstrap 5, jQuery</li>
<li><strong>Кэширование:</strong> Redis</li>
<li><strong>Очереди:</strong> Laravel Horizon</li>
<li><strong>Аутентификация:</strong> Multiple guards (web, admin)</li>
</ul>
<h2>Структура проекта</h2>
<pre><code>app/
├── Http/
│ ├── Controllers/
│ │ ├── Admin/ # Админ-контроллеры
│ │ │ ├── AuthController.php
│ │ │ ├── DashboardController.php
│ │ │ ├── DocumentationController.php
│ │ │ └── ...
│ │ ├── Api/ # API контроллеры
│ │ └── ... # Публичные контроллеры
│ └── Middleware/ # Промежуточное ПО
├── Models/ # Модели Eloquent
├── Services/ # Бизнес-логика
└── ...</code></pre>
<h2>Разделы документации</h2>
<ol>
<li><strong><a href="architecture.html">Архитектура системы</a></strong> - обзор, компоненты, стек технологий</li>
<li><strong><a href="api.html">API интеграция</a></strong> - REST API эндпоинты, конфигурация внешних API</li>
<li><strong><a href="database.html">База данных</a></strong> - структура и миграции</li>
<li><strong><a href="security.html">Безопасность</a></strong> - архитектура безопасности, ролевая модель</li>
<li><strong><a href="deployment.html">Развертывание</a></strong> - деплой на сервер, настройка продакшена</li>
<li><strong><a href="#development">Разработка</a></strong> - руководство по коду</li>
<li><strong><a href="currencies-management.html">Логика работы с валютами</a></strong> - типы транзакций, наценки, синхронизация</li>
<li><strong><a href="services-guide.html">Сервисы системы</a></strong> - руководство по ключевым сервисам</li>
</ol>
<h2 id="api">API документация</h2>
<h3>Публичные API</h3>
<ul>
<li><code>GET /api/partners/{cityId}</code> - партнеры по городу</li>
<li><code>GET /api/exchange/track/{orderNumber}</code> - отслеживание заявки</li>
<li><code>POST /calculate</code> - расчет обмена</li>
</ul>
<h3>Админ API</h3>
<ul>
<li><code>GET /admin/api/orders/get-rates</code> - получение курсов</li>
<li><code>POST /admin/api/update-partner-external-rates</code> - обновление курсов партнера</li>
<li><code>GET /admin/api/exchange-rates/check-external</code> - проверка внешних API</li>
</ul>
<h3>Авторизация</h3>
<p>API использует:</p>
<ul>
<li>CSRF токены для веб-форм</li>
<li>Сессии для админки</li>
<li>API ключи для внешних интеграций (в разработке)</li>
</ul>
<h2 id="database">База данных</h2>
<p>Основные таблицы:</p>
<ul>
<li><strong>currencies</strong> - валюты (крипто, фиат, токены)</li>
<li><strong>cities</strong> - города партнеров</li>
<li><strong>partners</strong> - точки обмена</li>
<li><strong>exchange_orders</strong> - заявки на обмен</li>
<li><strong>exchange_rates</strong> - курсы обмена</li>
<li><strong>external_rates</strong> - внешние курсы (API)</li>
<li><strong>exchange_apis</strong> - конфигурации API</li>
<li><strong>admins</strong> - администраторы системы</li>
<li><strong>users</strong> - клиенты</li>
<li><strong>user_wallets</strong> - кошельки пользователей</li>
<li><strong>settings</strong> - настройки системы</li>
<li><strong>pages</strong> - статические страницы</li>
</ul>
<h2 id="development">Разработка</h2>
<h3>Требования</h3>
<ul>
<li>PHP 8.1+</li>
<li>Composer 2.0+</li>
<li>Node.js 16+ (для фронтенда)</li>
<li>MySQL 8.0+ или MariaDB 10.4+</li>
<li>Redis 6.0+</li>
</ul>
<h3>Установка для разработки</h3>
<pre><code># Клонирование репозитория
git clone [repository-url]
cd dexa
# Установка зависимостей PHP
composer install
# Установка зависимостей Node.js
npm install
# Копирование конфигурации
cp .env.example .env
# Генерация ключа
php artisan key:generate
# Настройка базы данных в .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dexa
DB_USERNAME=root
DB_PASSWORD=
# Запуск миграций
php artisan migrate
# Запуск сидов
php artisan db:seed
# Запуск сервера разработки
php artisan serve</code></pre>
<h3>Код-стайл</h3>
<ul>
<li>PSR-12 для PHP</li>
<li>ES6+ для JavaScript</li>
<li>BEM-подобная методология для CSS</li>
<li>Комментарии на русском языке</li>
</ul>
<h2 id="deployment">Развертывание</h2>
<h3>Production требования</h3>
<ul>
<li>SSL сертификат (обязательно)</li>
<li>Выделенный сервер или VPS</li>
<li>Минимум 2GB RAM</li>
<li>Резервное копирование базы данных</li>
<li>Мониторинг (New Relic, Sentry)</li>
</ul>
<h3>Деплой процесс</h3>
<ol>
<li>Настройка сервера (Nginx/Apache)</li>
<li>Настройка PHP-FPM</li>
<li>Установка MySQL и Redis</li>
<li>Настройка Supervisor для очередей</li>
<li>Настройка крон задач</li>
<li>Деплой кода</li>
<li>Миграции и оптимизация</li>
</ol>
<h3>Cron задачи</h3>
<pre><code># Обновление курсов каждые 10 минут
*/10 * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
# Очистка старых сессий
0 0 * * * php /path/to/artisan session:gc >> /dev/null 2>&1
# Резервное копирование БД
0 2 * * * /path/to/backup-script.sh</code></pre>
<h2 id="security">Безопасность</h2>
<h3>Меры защиты</h3>
<ul>
<li>Хеширование паролей (bcrypt)</li>
<li>CSRF защита всех форм</li>
<li>Валидация всех входных данных</li>
<li>Подготовленные SQL запросы</li>
<li>Шифрование чувствительных данных (API ключи)</li>
<li>Логирование безопасности</li>
<li>Rate limiting для API</li>
</ul>
<h3>Рекомендации</h3>
<blockquote>
<p><strong>Важно:</strong> Регулярно обновляйте зависимости, используйте безопасные пароли, настройте WAF и DDoS защиту.</p>
</blockquote>
<h2>Логирование</h2>
<p>Система использует каналы:</p>
<ul>
<li><strong>daily:</strong> Основные логи приложения</li>
<li><strong>security:</strong> Логи безопасности и аутентификации</li>
<li><strong>api:</strong> Логи API запросов</li>
<li><strong>external:</strong> Логи внешних API интеграций</li>
</ul>
<h2>Тестирование</h2>
<p>Доступные типы тестов:</p>
<ul>
<li><strong>Unit тесты:</strong> PHPUnit для бизнес-логики</li>
<li><strong>Feature тесты:</strong> Тестирование контроллеров</li>
<li><strong>Browser тесты:</strong> Dusk для интерфейса</li>
</ul>
<pre><code># Запуск тестов
php artisan test
php artisan test --coverage
php artisan dusk</code></pre>
<h2>Контакты для разработчиков</h2>
<ul>
<li><strong>Техническая поддержка:</strong> odeveloper@internet.ru</li>
<li><strong>Документация:</strong> /admin/documentation/developer</li>
<li><strong>Репозиторий:</strong> [ссылка на Git]</li>
</ul>
</body>
</html>