👨‍💻 Документация для разработчиков

Назад к списку Редактировать
Информация
Slug:
index.html
Обновлено:
30.05.2026 15:03
Размер:
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/             # Бизнес-логика
└── ...

Разделы документации

  1. Архитектура системы - обзор, компоненты, стек технологий
  2. API интеграция - REST API эндпоинты, конфигурация внешних API
  3. База данных - структура и миграции
  4. Безопасность - архитектура безопасности, ролевая модель
  5. Развертывание - деплой на сервер, настройка продакшена
  6. Разработка - руководство по коду
  7. Логика работы с валютами - типы транзакций, наценки, синхронизация
  8. Сервисы системы - руководство по ключевым сервисам

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)

Деплой процесс

  1. Настройка сервера (Nginx/Apache)
  2. Настройка PHP-FPM
  3. Установка MySQL и Redis
  4. Настройка Supervisor для очередей
  5. Настройка крон задач
  6. Деплой кода
  7. Миграции и оптимизация

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>