Розробка адміністративної панелі на Filament (Laravel)

Керівники часто отримують панель, у якій облік заявок і залишків тримається на ручних правках і таблицях. Ми розробляємо адмін-панелі на Filament під ключ: налаштовуємо ролі, права та звіти так, щоб команда працювала швидше, а помилки введення зникали. Результат — менше ручних операцій і зрозумілі терміни.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Розробка адміністративної панелі на Filament (Laravel)
Середній
від 1 тижня до 3 місяців
Часті запитання

Filament адмін-панель: що ламається при зростанні проєкту

Саморобна адмінка починається як один контролер із формою та списком, а за рік у ній живе весь операційний контур. Права перевіряються прямо в шаблоні: умова на роль вирішує, показувати кнопку чи ні.

З'явилася роль «старший оператор із правом на повернення» — правка вирушає у п'ять файлів, один з яких забувають.

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

«Тихі» суперкористувачі, заведені на запуску, живуть роками — до розбору спірного списання, де незрозуміло, хто і на якій підставі його провів.

Зростання обсягу даних добиває те, що працювало на старті. Довідники наповнювали руками, унікальних ключів і нормалізації не закладали, тому в контрагентах з'являються три записи одного клієнта.

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

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

Першою ламається швидкість випуску нових розділів. Довідник із фільтрами та правами — це тижні копіювання вже готового, бо спільного шару для списків, форм і перевірок доступу в саморобі немає. В актуальній гілці Filament така типізація вбудована — розбираємо, як це закривається при переході.

Що змінюється після впровадження: строки, помилки, доступи

Швидкість випуску нових розділів

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

Розділ середньої складності виходить за дні замість тижнів, і це не разовий ривок, а темп усієї черги завдань.

Менше ручних операцій

Підтвердження заявки, зміна статусу, масове вивантаження перестають вимагати правок у базі та разових скриптів. Дія виконується з інтерфейсу, протоколюється й повторюється однаково будь-яким співробітником. Рутина йде в одну кнопку, людина займається лише тим, де справді потрібне її рішення.

Помилки введення даних

Перевірки на рівні форми, обов'язкові зв'язки та попередньо задані значення закривають клас відмов, який раніше знаходили за розходженнями у звітах. Поле не пропустить порожнє значення чи дубль, а зв'язок не дасть видалити запис, від якого залежать інші. Помилка видна в момент введення, а не під час звірки.

Час адаптації співробітника

Логіка інтерфейсу повторюється від екрана до екрана: однакові фільтри, пошук, збереження, скасування. Новий співробітник освоює типовий розділ за одну-дві зміни й не розбирається в саморобних формах. Вчити доводиться один раз і один набір прийомів.

Прозорість прав доступу

Ролі та дозволи описані декларативно, а не розкидані по коду. Видно, хто відкривав розділ, хто змінював запис і що саме змінилося; при звільненні доступ відкликається в одному місці. Це знімає питання «а хто це виправив» і спрощує перевірки.

Порівняння підходів: готові компоненти чи власна розробка

Вибір починається не з інструмента, а з того, наскільки структура даних збігається з типовою.

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

Filament адмін-панель у такому режимі розгортається поверх моделей і не потребує окремого шару представлення.

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

Варіант Коли підходить Обмеження
Готовий набір компонентів Типові довідники та зв'язки, списки з фільтрами, стислі строки запуску Нестандартна логіка нав'язується через обхідні шляхи, глибока правка верстки утруднена
Гібридний підхід Більшість екранів типові, але є два-три складні розділи Потрібні чіткі межі між готовим і власним кодом, інакше з'являються дублі рішень
Власна розробка інтерфейсу Унікальний сценарій роботи, високе навантаження, специфічні перевірки даних Довший випуск першої версії, весь цикл підтримки залишається на розробнику
Доопрацювання поточної системи Панель уже використовується, дані накопичені, зміна платформи ризикована Успадковані рішення обмежують архітектуру, частина технічного боргу переноситься
Надбудова над наявними даними Є зовнішні джерела та чужа схема, потрібен єдиний інтерфейс Залежність від зовнішнього сервісу та якості даних, затримки синхронізації

Впровадження адмін-панелі на Filament: від аудиту до передачі

Роботи йдуть етапами з результатом на кожному — замовник бачить, що вже працює, а не чекає фінального збирання.

Панель на Filament збирається поверх наявної схеми даних, тому починаємо з аудиту: поки незрозуміло, звідки беруться записи й хто їх змінює, будь-який інтерфейс вийде декоративним.

  1. Аудит поточного обліку. Розбираємо, які сутності реально використовуються, де дублі, які поля заповнюють вручну і які операції тримаються на одній людині.
  2. Схема даних і ролей. Фіксуємо зв'язки між сутностями та права: що доступно менеджеру, що адміністратору, де потрібна історія змін.
  3. Налаштування розділів. Навігація, таблиці з фільтрами й пошуком, форми з валідацією, масові операції — під щоденні сценарії, без зайвих кнопок.
  4. Перевірка сценаріїв. Проганяємо робочі шляхи повністю: заведення запису, правка, скасування, вивантаження звіту, відновлення видаленого. Граничні випадки ловимо до релізу.
  5. Розгортання та доступи. Налаштовуємо ролі, журнал дій і резервне копіювання, щоб будь-яку зміну можна було відновити.
  6. Передача та навчання. Показуємо розділи на реальних даних, віддаємо документацію за ролями та регламент типових операцій, включно з порядком додавання нових розділів.

Панель передаємо робочою, а не демонстраційною: команда закриває рутинні операції сама, а ми залишаємося на підтримці доопрацювань.

Склад постачання: конфігурації, політики, документація

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

  • Конфігурації розділів — за кожним розділом окремий набір полів, зв'язків, фільтрів і складу колонок. Додати поле чи приховати стовпець можна правкою конфігурації, не чіпаючи логіку вибірки й не переписуючи екран.
  • Політики доступу — матриця «роль → розділ → дія» з перевірками і на рівні запитів, і на рівні інтерфейсу: оператор не бачить чужі розділи й не може обійти обмеження через пряме посилання.
  • Схема даних — діаграма таблиць і зв'язків із призначенням полів і позначками, які зміни ламають сумісність зі старими записами, а які безпечні.
  • Інструкції для операторів — покрокові сценарії на щоденні завдання: заведення й модерація запису, масова правка, вивантаження, що робити при відмові збереження.
  • Регламент супроводу — порядок правок і перевірки, правила випуску й відкату версії, календар оновлення залежностей, зона відповідальності замовника й наша.
  • Журнал інтеграцій — перелік зовнішніх сервісів, до яких звертається панель, із зазначенням формату обміну, частоти викликів і поведінки при недоступності зовнішньої сторони.
  • Тестові дані та чек-лист приймання — набір записів для перевірки на стенді та список сценаріїв, за якими замовник сам підтверджує, що панель готова до роботи.

Усе це оформлено так, що новий розробник входить у проєкт за документацією, а не за усними поясненнями. Якщо в ході роботи з'являються нестандартні розділи, вони описуються тим самим способом — інакше постачання вважається неповним.

Кейс: облік заявок і залишків — метрики до і після

Вихідна точка

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

На перевірку йшло 6–8 хвилин на заявку, а частка заявок, які доводилося правити вручну після оформлення, трималася близько 38%.

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

Що змінили і що отримали

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

Оформлення однієї заявки скоротилося з 6–8 хвилин до 40–60 секунд, частка ручних правок — з 38% до 6%, і це переважно уточнення адреси доставки.

Нове поле чи статус вводимо за 1–2 години: опис, правило доступу, міграція, перевірка на копії даних; раніше це було листування на 2–3 дні та правка в трьох місцях одразу.

Відповідальний за напрямок у відгуку окремо зазначив, що ручні звірки зранку перестали бути частиною робочого дня.

Чи можна доопрацювати поточну систему, не переписуючи інтерфейс?

У більшості випадків переписувати інтерфейс не потрібно.

Якщо дані лежать у реляційній базі з явними зв'язками, панель керування надбудовується поверх наявних таблиць: описуємо ресурси, відношення та права доступу, і співробітники працюють із тими самими записами, просто через інший інтерфейс. Показники, звіти й пошук при цьому рахуються за тими самими полями, що й раніше.

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

Переробка схеми неминуча там, де логіка тримається на вільних текстових полях: статуси й типи записані рядком, зв'язки між сутностями ніде не зафіксовані, історія змін не зберігається.

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

Сумісність з поточним обліком перевіряємо до змін, а не після: вивантаження, звіти та зовнішні інтеграції повинні отримувати дані в попередньому вигляді.

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

Так часткова модернізація закриває основний біль — швидкість і прозорість роботи операторів — без зупинки обліку й без ризику втратити накопичені дані.

Часті технічні питання: обмеження та компроміси

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

Де в підходу є межі?

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

Як панель поводиться на великих обсягах?

Списки збираються на сервері з посторінковою вибіркою та сортуванням за індексами — першим починає гальмувати фільтр за неіндексованим полем, це і є точка зростання.

Масові імпорти та вивантаження виводимо у фонові завдання, щоб браузер не чекав відповіді на багатотисячну вибірку.

Як розмежовується доступ між співробітниками?

Доступ будується на ролях і політиках рівня записів: менеджер бачить лише свої об'єкти, керівник напрямку — свій підрозділ. Кожна зміна потрапляє в журнал дій з автором і попереднім значенням, тому спір «хто змінив» закривається фактами, а не листуванням.

Що з інтеграціями та супроводом?

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

Оновлення мажорної версії виконуємо окремою гілкою з прогоном тестів, щоб адмінка не «поїхала» разом із фреймворком.

Обговоримо завдання: з чого починається оцінка та план

Щоб оцінка завдання спиралася на факти, а не на припущення, потрібен мінімальний набір вхідних даних: доступ до репозиторію або дамп структури бази, перелік ролей і прав, список сутностей зі зв'язками та поточні способи адміністрування цих даних. Якщо панель уже працює, додаємо екрани, звіти та вивантаження, які повинні залишитися робочими.

  • Схема даних: таблиці, зв'язки, обсяги — визначають, де потрібні індекси та посторінковий вивід.
  • Ролі та права: хто що бачить і змінює, чи потрібен журнал дій і обмеження за підрозділами.
  • Поточне адміністрування: скрипти, ручні правки в базі, вивантаження — кандидати на перенесення в інтерфейс.
  • Зовнішні системи: оплата, склад, повідомлення — за кожною потрібен спосіб обміну та відповідальний на вашій стороні.
  • Обмеження: середовища, вимоги безпеки, порядок доступу до серверів, що критично до запуску.
  • Що переносимо в першу чергу, а що може зачекати до другої черги.

Частина екранів закривається штатними засобами Filament, частина потребує власної логіки — це перше, що впливає на обсяг. За зібраними даними повертаємося з планом робіт: етапи, склад команди під кожен етап, точки погодження та порядок старту. Опишіть завдання своїми словами — уточнювальні питання поставимо самі.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060