Дмитрий Ильин arcaneflow Сбер ID
Рейтинг
73
№ 43 133 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Нижний Новгород
Опыт работы
11 лет
На сайте с
2026 года
Юридический статус
Самозанятый

Fullstack CRM enterprise-класса в одиночку: Laravel + Vue, DDD-архитектура, real-time и 1338 автотестов

Используемые навыки Laravel PostgreSQL Typescript Vue.js Архитектурное проектирование

Описание

Коробочная CRM (Bitrix24, amoCRM) закрывает 60–70% типовых процессов, а на остальное упирается в ограничения платформы: свою логику воронки, нестандартные роли, глубокую интеграцию с учётом. Задача сделать CRM, которая закрывает недостающие процессы с учетом специфики бизнеса.

Решение

Собрал систему целиком — бэкенд, фронтенд, инфраструктуру, тесты, дизайн. Один ответственный за весь стек.

Архитектура — прагматичный DDD. Домен разбит на 6 ограниченных контекстов: Identity, Customer, Sales, Task, Analytics, Notification. Бизнес-логика живёт в rich-моделях Eloquent с Value Objects (Money, Email, PhoneNumber, PersonName), доступ к данным — через Repository (интерфейсы в слое Domain, реализации в Infrastructure), побочные эффекты (уведомления, индексация поиска, audit log) развязаны через Domain Events. Без ритуального event sourcing — стандартная персистентность плюс события там, где они реально нужны.

Рантайм — Laravel 11 на Octane (Swoole): приложение держится в памяти между запросами, 4 воркера + 6 task-воркеров. Это накладывает дисциплину — никаких синглтонов с мутабельным состоянием, иначе состояние утекает между запросами. Кэш многослойный: L1 в памяти Octane, L2 в Redis, инвалидация по тегам. Поиск — Meilisearch через Laravel Scout: мгновенные результаты, устойчивость к опечаткам, асинхронная переиндексация очередями. Кастомные поля клиентов — на JSONB с GIN-индексом, чтобы не плодить миграции под каждый бизнес. Real-time (изменения сделок, задач, уведомления) — Laravel Reverb по WebSocket. Авторизация — OAuth2 через Passport, права — 5 ролей на Spatie Permission, soft delete и audit log на всех сущностях.

Фронтенд — Vue 3 + TypeScript: серверное состояние на TanStack Query, клиентское на Pinia, интерфейс на shadcn-vue + Tailwind. Kanban сделок с drag&drop, merge-wizard контактов, дашборды на ApexCharts с PDF-экспортом, импорт/экспорт CSV/XLSX с маппингом полей и дедупликацией, командная палитра Cmd+K, i18n (ru/en), тёмная тема. Дизайн интерфейса довёл до продуктового вида через AI-агента (связка студии Open Design с Claude Code по MCP) — переписал визуальный слой по дизайн-системе, без правок бизнес-логики; отдельного дизайнера не привлекал.

Собрано в AI-first процессе: Claude Code как исполнитель внутри выстроенного контекста (спецификация, правила проекта, TDD — тесты вперёд кода), а архитектурные решения, ревью и ответственность — за мной. Это граница, которая отличает инженерию от вайб-кодинга. Весь стек в Docker, CI/CD на GitHub Actions.

Результат

В одиночку собран полный CRM-контур production-уровня: ~35 000 строк собственного кода (бэкенд + фронтенд + тесты), 6 ограниченных контекстов, 28 миграций. 1338 автотестов зелёные — 856 Pest (backend), 464 Vitest (frontend), 18 Playwright (E2E), писались вперёд кода. Функционал: контакты и компании, воронка сделок с Kanban, задачи с чеклистами и упоминаниями, аналитика с дашбордами и PDF, импорт/экспорт, полнотекстовый поиск, real-time, RBAC, audit log, две темы, два языка. Редизайн через AI-агента — 13 и 15 изменённых файлов фронта, ноль правок логики, все тесты зелёные: два разных интерфейса из одной кодовой базы.

Оценили проект:

Другие проекты

Все проекты →
Искусственный интеллект Персональный AI-агент на своём VPS под ключ: мультиагентная система в Telegram, свои данные и интеграции без SaaS-подписки
Персональный AI-агент на своём VPS под ключ: мультиагентная система в Telegram, свои данные и интеграции без SaaS-подписки
13
Веб-разработка и IT Конвейер карточек для Wildberries: из PSD-шаблона и таблицы моделей — пачка готовых каруселей без Photoshop
Конвейер карточек для Wildberries: из PSD-шаблона и таблицы моделей — пачка готовых каруселей без Photoshop
7
Искусственный интеллект AI-плагин для WordPress: SEO-статьи с картинками без копирайтера
AI-плагин для WordPress: SEO-статьи с картинками без копирайтера
17
Искусственный интеллект Python-библиотека llm-rotator: отказоустойчивая ротация LLM-провайдеров (circuit breaker, квоты, model-first routing)
Python-библиотека llm-rotator: отказоустойчивая ротация LLM-провайдеров (circuit breaker, квоты, model-first routing)
11