Про клієнта
Наш клієнт — компанія в енергетичному секторі — володіє кількома панелями електростанцій, розміщеними на різних об’єктах, і активно розширює свої потужності. Один із представників компанії, керівник технічного нагляду, наголосив на потребі оптимізувати бізнес-процеси шляхом точного моніторингу ефективності численних активів. Основною вимогою було створення рішення, яке б дозволяло швидко відображати стан кожної електростанції на інтерактивній карті. По суті, клієнт очікував на мінімально життєздатний продукт, щоб протестувати ринковий попит.
Основні виклики, з якими зіштовхнувся клієнт:
- Відсутність централізованої аналітики щодо кожного об’єкта
- Відсутність єдиної карти або панелі моніторингу для активів і стану обслуговування
- Порушена комунікація між командами, які працюють на різних локаціях
- Необхідність масштабувати операції для управління зростаючою кількістю об’єктів
- Потреба в моніторингу статусу завдань, пов’язаних із сонячним обладнанням або іншою енергетичною інфраструктурою, у реальному часі
- Орієнтація працівників на карті — відображення місцеперебування команд і ходу виконання робіт
Клієнт мав лише загальне бачення і потребував команди, здатну сформувати та реалізувати повноцінне рішення. Завдяки нашому досвіду у розробці end-to-end рішень у межах сервісів зі створення стартапів, клієнт довірив нам цей складний проєкт, очікуючи реального впливу на бізнес.
Виклики в розробці
Під час створення веб-рішення для управління в енергетичному секторі наша команда стикнулась із такими викликами:
- Інтеграція з IoT-сенсорами в реальному часі для відстеження роботи панелей
- Реалізація системи відстеження завдань і проблем: інциденти, заплановані роботи, удосконалення, історія обслуговування
- Детальний облік змін для кожної панелі — її стану й оновлень
- Усунення ризиків, пов’язаних із плинністю кадрів, через фіксацію запланованих завдань і термінів
- Забезпечення безпечного, рольового доступу
- Масштабування інтерактивних об'єктів, як-от сонячні станції
- Географічна гнучкість
- Використання хмари Microsoft Azure для глобального доступу, високої доступності та резервного копіювання
Завдяки ретельному аналізу вимог на етапі Discovery та досвіду розробників нам вдалося мінімізувати ризики та ефективно реалізувати рішення в заплановані строки.
Як ми реалізували проєкт
Цей проєкт вимагав математичного та заснованого на аналізі даних підходу. Одним із ключових елементів стала геопросторова індексація — для ефективної обробки та запитів щодо локацій даних з різних об’єктів. Це дало змогу точно обчислювати просторові зв’язки.
Проєкт реалізовано за методологією Agile, що охопила всі етапи: Discovery → UI/UX → Development → Delivery → Support. Чіткий розподіл технічних ролей дозволив клієнту зосередитися на бізнес-логіці, не залучаючись безпосередньо до розробки.
Архітектуру системи планування завдань на віддалених сонячних станціях ми створили з нуля під час нашої щорічної навчальної програми. Присвячена команда .NET складалася зі стажерів під менторством досвідчених інженерів у рамках C# .NET Full-Stack Bootcamp 2024: Дві proof-of-concept ідеї за один місяць. Такий підхід дозволяє клієнтам отримати якісне бізнес-рішення за найкращою вартістю на ринку.
Щоб зменшити витрати на інфраструктуру, ми розмістили рішення в хмарі Microsoft та оптимізували керування доступом через Microsoft Entra. Також ми навчили команду клієнта користуватися Azure Active Directory Domain Services.
Процес розробки
Технологічний стек:
- Backend: .NET Core — надійний та безпечний API
- База даних: Cosmos DB — швидкий доступ до геоданих і логів
- Frontend: Angular і SCSS — адаптивний інтерфейс
- Карти: OpenStreetMap — кастомізовані інтерактивні шари
- Авторизація та ролі: Entity Framework із розподілом доступу (Admin, Editor, User)
- Кешування та зберігання: кеш — для швидкої відповіді UI, основні дані — у SharePoint
- Хмара: Azure Functions — для масштабованої обробки даних, включно з обробкою великого обсягу email-повідомлень
- Аналітика та звітність: Power BI — для створення інтерактивних дашбордів у реальному часі
Бібліотеки та інструменти
Ми обирали бібліотеки за трьома критеріями:
- відповідність функціоналу
- надійність і підтримка спільноти
- регулярні оновлення
Серед ключових бібліотек:
- OpenStreetMap
- System.Text
- Azure.Identity
- Microsoft.Azure.Cosmos
- AutoMapper
- Microsoft.EntityFrameworkCore
- Microsoft.Graph
- Microsoft.Identity.Client
Особливо варто відзначити AutoMapper — бібліотеку для перетворення даних між шарами. Вона дозволила ефективно обробляти просторові об’єкти: фільтрувати, перетворювати й візуалізувати їх залежно від типу, статусу, координат.
На фронтенді (Angular) ми інтегрували OpenStreetMap. Користувачі можуть легко виділити будь-яку ділянку, розмістивши чотири точки на карті — це забезпечує гнучке налаштування меж, відповідно до реальних умов. Angular гарантує зручний UI для роботи як на ПК, так і на мобільних пристроях з оновленням у реальному часі.
Як це працює
У нашій системі кожна панель прив’язана до зони на карті. Це дозволяє легко відстежувати активність на кожній локації. Система підтримує повноцінну CRUD-функціональність для адміністраторів і керований доступ для інженерних команд. Це сприяє точному плануванню та обміну оновленнями в реальному часі.
Завдяки хмарній архітектурі рішення масштабоване, адаптоване до розширення функціоналу, зростання числа користувачів, географії та інфраструктури.
Результати
У результаті ми реалізували рішення, яке:
- Повністю замінило паперову документацію завдяки Power BI та SharePoint
- Забезпечує доступність з будь-якого пристрою за стабільного інтернету
- Гарантує безпеку даних через Azure.Identity та Azure Key Vault
- Інтегрується з IoT-сенсорами: температура, напруга, струм, потужність тощо
- Дозволяє в реальному часі моніторити статус завдань і оновлювати їх безпосередньо на місці
- Пропонує інтерактивну візуалізацію даних на мобільних пристроях
- Використовує Cosmos DB для швидких геозапитів та логів
- Гарантує глобальну доступність, масштабування, резервне копіювання
Один із ключових елементів рішення для моніторингу сховищ сонячної енергії — використання бібліотеки .Net AutoMapper, яка автоматизує перетворення даних між різними об’єктними моделями. Вона допомогла нам спростити та стандартизувати обробку геопросторових і операційних даних при передачі між шарами системи.
Замість ручного зіставлення кожного поля даних між моделями бекенду та інтерфейсу, з AutoMapper наша команда могла один раз задати правила перетворення й послідовно використовувати їх у всій системі. Це дало змогу оптимізувати процес розробки, зменшити кількість помилок і забезпечити узгодженість даних у шарах інтерактивної мапи та на дашбордах.
На фронтенді, створеному за допомогою Angular, ми інтегрували OpenStreetMap для відображення просторових даних. Щоб покращити взаємодію з мапою, ми реалізували спеціальну логіку, яка дозволяє користувачам виділяти об’єкти, розміщуючи чотири точки. Це забезпечило гнучке пристосування рішення до різних географічних конфігурацій.
У підсумку, готове рішення було розгорнуте у хмарному середовищі Microsoft Azure, де наразі активно використовується інженерними командами замовника.
У цьому кейсі ми розробили рішення з нуля. Бізнеси можуть звертатися до нас із MVP, і ми надамо додаткові ресурси для розробки продукту або маркетингу. Це дозволяє організаціям отримати доступ до висококваліфікованих фахівців, які швидко зануряться в унікальні потреби та виклики бізнесу.
Упродовж співпраці команда замовника опановує нові технології, вдосконалює внутрішні процеси й навчається працювати з результатами, що сприяє швидшому поверненню інвестицій (ROI).
Ознайомтесь з нашими схожими проєктами, щоб краще зрозуміти масштаб нашої роботи та цінність, яку ми приносимо бізнесу.
Зацікавлені у співпраці? Перейдіть на сторінку Our Pricing | НЕТЛС. Зв’яжіться з нами — і ми надішлемо вам детальну презентацію наших досягнень у розробці комплексних рішень.