Task Platform v1.34.x: DB-Driven Migration, CRUD Fixes, Ecosystem Deploy
Полный переход Task-платформы (task.ipd.by) на DB-driven архитектуру: 6 Laravel-миграций, Eloquent-модели для directions/projects/tasks/steps/history/activity. Исправлены CRUD-операции (task_edit формы, action controller), декодирование CP866 кракозябров, порт MariaDB (DBngin 3306). Расширен changelog: подзаголовки, статистика, техническая информация. Задеплоено на PROD.
Зачем эта запись
Эта запись истории платформы ipd.by описывает работу над цифровыми платформами: системами учёта, кабинетами, интеграциями. Платформа — это не сайт, а рабочий инструмент с понятной сотрудникам логикой. Версия 4.13.1 (23.07.2026) описывает: «Task Platform v1.34.x: DB-Driven Migration, CRUD Fixes, Ecosystem Deploy». Дальше по странице — что именно было сделано в этой версии и к каким кейсам это относится.
Что сделано в версии 4.13.1
от 23.07.2026Task Platform: DB-Driven Architecture (v1.34.0)
- 6 Laravel-миграций — directions, projects, tasks, task_steps, task_history, activity_log. Чистые таблицы для MySQL (MariaDB) и SQLite
- Eloquent-модели — Direction, Project, Task, TaskStep, TaskHistory, ActivityLog. Архитектура полностью DB-driven, JSON-файлы удалены
- ActionController::handle() — добавлена проверка expectsJson(): HTML-формы → redirect(), AJAX → JSON response
- Dead code cleanup — удалён json_dir из config/platform.php, дублирующий config/config/platform.php
- task_edit.blade.php — 4 формы: task_id → id (task_start, task_complete, task_reopen, task_delete). Ранее формы отправляли несуществующий task_id
- directions.blade.php — deleteDirection/updateDirection через form.submit() вместо ручного fetch
- projects.blade.php — deleteProject/updateProject аналогично
- tasks.blade.php — deleteTask через form.submit()
- normalizeEncoding() — декодирование CP866/Latin1 → UTF-8 в ImportController. 8 направлений с кракозябрами исправлены
- MariaDB порт — DBngin MariaDB 10.11 на порту 3306 (не 3307). .env: DB_CONNECTION=mysql, DB_PORT=3306
- SQLite fallback — временный переключение на SQLite при недоступной MariaDB (с возвратом)
- SyncFromProd — SSH-туннель для доступа к PROD MySQL, прогресс-бар, цветовая индикация статуса
- parseVersions() переписан — поддержка ### subsections в changelog.md. Подгруппы с зелёными заголовками
- settings.blade.php — рендеринг sections[]: title/summary под версией, grouped sections с text-transform:uppercase
- changelog.md — 9 новых записей (v1.33.1–v1.34.4) с подгруппами Added/Fixed/Changed/Technical
- PROD — task.ipd.by (185.66.68.122:52222), SQLite, v1.34.4 deployed
- SCP + artisan cache:clear — AdminController.php, settings.blade.php, changelog.md, platform.php
- TEST — task.ipd.test (Laravel Herd, MariaDB 10.11), v1.34.4
- Task Platform: v1.32.6 → v1.34.4 (9 версий за 2 дня)
- Миграции: 6 таблиц (directions, projects, tasks, task_steps, task_history, activity_log)
- Исправления CRUD: 7 blade-файлов, 4 формы, 3 JS-обработчика
- Кодировка: 8 направлений декодированы из CP866
- Changelog: 9 записей с подгруппами, ~300 строк документации
- VDS: Ubuntu 22.04, PHP 8.3, Nginx, MariaDB, SQLite
- Версия: 4.13.0 → 4.13.1
Кейсы по этой теме
Эти реальные проекты подтверждают направление, в котором сделана версия.
Разделы по теме
Почему этому можно доверять
Платформа ipd.by развивается открыто: каждый пункт этой версии — реально выполненная работа с датой и описанием, а вся история изменений хранится в реестре версий на Laravel. Кейсы, на которые ведут ссылки выше, — реальные проекты, а не обещания.
Нужна такая работа над вашим проектом
Версии — это видимая история разработки: платформа растёт, а каждая страница объясняет, что и зачем сделано. Если ищете команду, которая так же профессионально развивает продукт — это как раз то, чем я занимаюсь.