роботи/build/agency-crm
// кейс 07 · з нуля · laravel + react · 21 екран

CRM, яку агенція намалювала прототипом, — зроблена за ним екран в екран.

Менеджер digital-агенції спроєктував їхню CRM як клікабельний прототип і попросив саме це — ті самі блоки, ті самі кнопки, ті самі поля, а не щось схоже. За кожним екраном потрібно було те, чого в прототипі немає: база, ролі, гроші, що сходяться між сторінками.

клієнт
digital-агенція, UA
стек
Laravel 13, Inertia, React
екрани
21
послуга
07 · з нуля
стан
приймальне тестування
рік
2026
екранів за прототипом
2112 вкладок звітів
ролей × розділів
5 × 1852 тести доступів
компаній перенесено з Бітрікс24
267замість демо-даних

завдання

Агенція хотіла одну систему для клієнтів, продажів, рахунків і команди. Їхній менеджер намалював її клікабельним прототипом — дашборд, компанії, задачі, вісім фінансових екранів, звіти, — і завданням був сам прототип: зробити це, буквально.

як ішло

Вийшло три підходи. Перша версія за простішим ТЗ; потім мій власний дизайн; потім агенція намалювала прототип, і застосунок перезібрано під нього.

Перше порівняння з прототипом повернулось як «зовсім не схоже, на кожній сторінці». Причина була зовсім не в компонентах: таблиця стилів дизайн-кіта підключалась перед Tailwind, і його скидання стирало заголовки й шрифт кіта. Одна зміна порядку підключення — і екрани почали збігатись; далі робота йшла екран за екраном, з прототипом у сусідній вкладці, блок за блоком.

що зроблено

  1. Компанії: список із фільтрами, сортуванням колонок і масовими діями, канбан із перетягуванням, картка компанії з редагуванням на місці, «здоров’я» клієнта, контакти, доступи у зашифрованому вигляді, журнал активності.
  2. Задачі й фінанси на вісім екранів: рахунки, акти, договори, оплати, витрати, реклама, фінансовий кабінет і калькулятор вартості — з друком рахунку й нагадуваннями в Telegram.
  3. Звіти на дванадцять вкладок, дашборд із вибором періоду і глобальний пошук на Cmd+K.
  4. Telegram-бот із щоденним зведенням і персональними сповіщеннями.
  5. Гроші, що сходяться між екранами: резерв виплати на рахунку ділиться пропорційно, коли рахунок оплачено частинами, — однаково на кожній сторінці.

доступи, а не лише меню

Ролі, які лише ховають пункти меню, — це не контроль доступу: прихована сторінка однаково відкривається за адресою. Тож п’ять ролей (адмін, менеджер, копірайтер, SEO, програміст) отримують права на перегляд, зміни й створення по кожному розділу, 18 розділів загалом, з перевіркою на кожному маршруті і з редагуванням адміном на одному екрані. Пошук фільтрується тими самими правами, тож прихований розділ не прочитати через Cmd+K. Виконавець може змінити статус і опис своєї задачі, але не її дедлайн чи гроші. Це тримають 52 тести.

дані

Демо-дані прибрано, а 267 справжніх компаній прийшли з вивантаження Бітрікс24 через команду з пробним прогоном. Дату «активності» з Бітрікса записано в «днів від останнього контакту», а не в «наступний контакт»: усі ці дати були в минулому, і CRM відкрилась би з усією базою клієнтів у простроченні.

де зараз

Менеджер агенції проходить систему на приймальному тестуванні. Інтеграції з Gmail, Google Sheets і Zapier, намальовані в прототипі, ще не підключені: для них потрібні власні акаунти й токени агенції.