Про клієнта
Наш клієнт з державного сектору в галузі телекомунікацій стикнувся із труднощами під час обробки та аналізу великих обсягів даних із чатів Telegram. Замовник потребував таргетованого пошуку за місцем, ключовими словами та проблемами пов’язані з комунальними службами. Telegram не підтримує таку функціональність.
За замовчуванням месенджер дозволяє шукати лише в одному чаті, за точним текстом і за єдиним запитом. Вбудовані функції Telegram змусили б клієнта витрачати надто багато часу на ручний пошук, що значно ускладнювало прийняття оперативних і виважених рішень.
Ми запропонували ефективне рішення для отримання змістовної інформації з великої кількості чатів. Для реалізації концепції була сформована стартап-команда зі стажерів під наглядом наших досвідчених експертів, яка розробила ETL-сервіс для класифікації й агрегування повідомлень і авторів у чатах за конкретними локаціями та ключовими словами — із можливістю пошуку як за точним збігом, так і за шаблоном. Уся функціональність мала бути доступною через зручний вебінтерфейс.
Виклики клієнта в управлінні бізнесом
Для створення ефективної системи управління бізнесом клієнту було потрібно рішення, яке забезпечить доступ до актуальної аналітики, обробку великих обсягів даних і прийняття рішень на основі релевантної інформації. Засновник компанії в галузі комунальних послуг визначив такі ключові виклики:
- Обмежений бюджет на цифрову трансформацію, який створює конфлікт між поточними операційними потребами та довгостроковими інвестиціями в інфраструктуру даних. Це серйозна проблема для фінансового директора, який має балансувати між витратами та потребою в масштабованих рішеннях.
- Фрагментованість, неструктурованість даних, відсутність централізованого контролю.
- Потреба в інтеграції з різних джерел даних.
- Хаотичне зберігання даних, що ускладнює аналітику й ухвалення рішень.
- Відсутність внутрішньої технічної команди, яка могла б оперативно розпочати розробку.
Знайти команду на короткостроковий проєкт, яка може швидко розпочати повний цикл розробки — складне завдання. Для подолання цього бар’єра NetLS сформувала внутрішні команди, провівши інтенсивні навчальні курси для роботи над проєктами у спеціалізованих галузях.
Наші спеціалісти розробили практичний курс, що охоплює увесь цикл розробки ETL для сховища даних для початківців. C# .NET Full-Stack Bootcamp 2024: Дві proof-of-concept ідеї за один місяць допоміг студентам здобути достатній рівень для початку роботи.
Проєкт реалізовувався у форматі стартапу: ми сформували команду відповідно до вимог замовника та зосередились на якісному та своєчасному результаті.
Як відбувалась робота
Наша команда на етапі дослідження (discovery) ретельно проаналізувала запит клієнта й розробила план реалізації рішення. Ми підготували детальний документ із вимогами до продукту — включно з функціональністю, технічними характеристиками та вимогами користувачів. Стратегічна дорожня карта передбачала такі етапи:
- Етап дослідження: аналіз вимог користувачів і розробка основної концепції.
- Етап розробки: відповідність усіх технічних рішень архітектурі проєкту для стабільності системи.
- Етап впровадження: розгортання рішення та фінальне тестування.
Планування роботи
Основна ідея нашого рішення — автоматизація. Ми оптимізували аналіз даних без залучення додаткового персоналу, що зменшило ручну роботу й пришвидшило обробку інформації про проблеми. Інтеграція AI/ML із Databricks дозволила виявляти проблеми й формувати прогнози щодо скарг та сповіщень.
Ключовим елементом також було структуроване представлення даних у реальному часі. Це дало змогу клієнту бачити аналітику, оцінювати ефективність роботи й виявляти динаміку змін. Уся інформація відображалась на інтерактивному дашборді — це полегшило ухвалення своєчасних і обґрунтованих рішень.
Для реалізації цієї концепції ми запустили друге щорічне стажування C# .NET Full-Stack, під час якого ментори, мідл розробники та технічні керівники супроводжували команду.
NetLS має потужну репутацію, яка приваблює сотні заявок від талановитих студентів технічних спеціальностей. Ми обрали найкращих кандидатів і розпочали інтенсивну підготовку.
Програма дала змогу сформувати команду з якісною базою ООП, бекенду на C#, MS SQL, фронтенду (HTML, CSS, JS, TypeScript, Bootstrap, Angular, SCSS), а також Azure AD, Azure Functions, SharePoint, Power BI. Команда працювала над:
- розробкою вебсервісу для обробки великих обсягів даних із месенджера;
- забезпеченням стабільності та продуктивності бекенду;
- створенням зручного та швидкого інтерфейсу;
- побудовою аналітичних звітів у Power BI за допомогою ETL-процесів;
- зберіганням файлів та зображень у структурованому вигляді на SharePoint;
- реалізацією надійної автентифікації та контролю доступу;
- модульною архітектурою для гнучкої масштабованості.
Першу версію архітектури було побудовано з використанням Data Puddle як шару обробки. У другій версії додано Data Lake, що дозволило ефективніше агрегувати й зберігати дані.
В обох випадках був налаштований надійний ETL-процес для Telegram, який класифікував і готував дані без втрат або дублювання.
Професійний супровід
Ми сформували сильну робочу групу для підтримки команди:
- C#-розробник — керівник проєкту, який контролював прогрес і розподіляв завдання.
- Проєктний менеджер — координував запуск і слідкував за дотриманням дедлайнів.
- Технічний лід — стежив за якістю коду.
Завдяки досвіду провідних інженерів компанії та ефективному професійному супроводу, команда змогла реалізувати ETL-пайплайни швидко та якісно.
Процес розробки
Для розробки вебсайту наша команда обрала .NET Core як основний фреймворк для бекенду. Цей потужний інструмент дозволив забезпечити стабільність і високу продуктивність сервісу, який повинен обробляти великі обсяги даних з месенджера та регулярно їх оновлювати. Оновлення даних відбувалося щогодини за допомогою Azure Functions.
Фронтенд було реалізовано на Angular із налаштованим роутингом для зручної навігації. Повідомлення та ключові слова зберігалися в базі даних Cosmos DB, що дозволяло ефективно працювати з великими наборами даних. Аналітичні звіти зі швидким та точним відображенням даних генерувалися в Power BI. Для доступу до даних та їх обробки використовувався REST API.
Стажери також реалізували зберігання файлів та зображень у SharePoint із чіткою структурою каталогів. Для автентифікації користувачів і контролю доступу застосовувався Entity Framework.
Наша команда впровадила ETL-конвеєри даних, які забезпечували надійний потік та трансформацію інформації з месенджера у структурований формат. Це зробило рішення придатним для бізнес-аналізу та ухвалення рішень.
Результати розробки: дві версії рішення
Перша версія включала головну сторінку з такими можливостями:
-
Таблиці даних, які відображають інформацію про ключові слова, повідомлення, синоніми, авторів та чати. Кожна таблиця містить кілька колонок з інформацією та підтримує фільтрацію за різними критеріями — періодом, автором, статусом тощо.
-
Операції з даними, які дозволяють додавати, редагувати або видаляти записи (ключові слова, повідомлення, синоніми, чати). Для видалення передбачено текстове поле з вказанням причини.
-
Пагінація в усіх таблицях для зручної навігації при роботі з великими обсягами даних.
-
Дії з записами, які супроводжуються кнопками для видалення, оновлення та збереження, а також можливістю повернення до попередніх версій під час редагування.
-
Інформація в таблицях охоплює кількість похідних елементів, повідомлення за ключовими словами, статус повідомлення, типи синонімів, інформацію про автора та чат.
-
Функціонал роботи з файлами та зображеннями забезпечує правильне зберігання аватарів, а також файлів, пов’язаних із повідомленнями та авторами.
У другій версії додано Data Lake як проміжний шар між Telegram і нашим рішенням. Це дало змогу реалізувати такі функції:
-
Data Lake збирає всі повідомлення з вибраних Telegram-чатів, зберігає їх протягом 24 годин у будь-якому форматі, після чого видаляє.
-
Обмеження — не більше 20 оновлень Telegram на годину для одного номеру телефону.
-
Повідомлення за ключовими словами система отримує не напряму з Telegram, а з Data Lake.
Результати
Найкращі практики та методики допомогли нам сформувати ефективну команду й організувати для стажерів структуровану програму з чітким графіком. У підсумку фінальна версія повністю відповідає вимогам замовника.
Клієнт отримав повноцінне рішення, яке:
- дозволяє шукати проблеми за ключовими словами, типами та локаціями (країна, місто, район, вулиця);
- зберігає повідомлення в структурованому форматі для аналізу динаміки;
- відображає дані на інтерактивному дашборді в реальному часі для ухвалення точних рішень.
Модель співпраці Startup Development стала для клієнта найвигіднішою. Це ідеальний вибір для бізнесів, які мають ідею, але не мають досвідченої технічної команди. Ми беремо на себе повну відповідальність за весь цикл розробки й швидко постачаємо завершений продукт. Наша досвідчена команда розробників навчає команду клієнта працювати з новими технологіями та застосовувати найкращі практики розробки програмного забезпечення.
Якщо наявна команда потребує додаткової підтримки або прискореної розробки, ми залучаємо досвідчених фахівців, які можуть швидко запустити проєкт, оптимізувати релізи та впровадити модель ефективної економіки одиниці.
Якщо вам цікава наша експертиза, залиште заявку у формі зворотного зв’язку. Ми надішлемо презентацію та обговоримо, як можемо допомогти вашому бізнесу.