Розроблення мобільного додатку для передачи показань лічильників
Завдання здається простим: житель вводить цифри — дані йдуть у систему. На справді це форма з кількома шарами валідації, інтеграцією в біллінг та OCR-розпізнаванням, яке половину часу помиляється на рукописних цифрах циферблата.
Основна механіка та де вона ламається
Житель заходить у додаток, бачить список лічильників по своєму лицевому рахунку (вода холодна, гарячої, електроенергія, газ), вводить показання та надсилає. Це — 80% випадків. Решта 20% створюють 80% проблем.
Валідація показань. Показання не можуть бути менше попередніх — крім випадку заміни лічильника. Якщо різниця між поточними та попередніми перевищує пороговане значення (наприклад, 50 кубометрів води за місяць — підозрілі), система повинна запросити підтвердження, а не мовчки прийняти. Пороги — налаштовувані параметри в адміністративній панелі, не захардкодовані константи.
Дедлайн передачи. Більшість УК приймають показання з 15 по 25 число. За межами цього вікна форма має бути заблокована з зрозумілим сповіщенням — не просто "помилка", а "Показання приймаються з 15 по 25 число. Наступне вікно відкриється через X днів". Реалізуємо через конфіг сервера, не логіку додатку.
OCR-введення через камеру. ML Kit Text Recognition (Android) / Vision Framework (iOS) для розпізнавання цифр з екрану лічильника. Теоретично зручно — на практиці розпізнавання ролькового лічильника з бліками працює в 60–70% випадків. Тому OCR — допоміжний інструмент, не заміна ручному введенню. Результат розпізнавання заповнює поле, житель підтверджує або виправляє.
Інтеграція з біллінгом
Найважливіша частина. Дані повинні потрапити в систему обліку управляючої компанії — 1С:Бухгалтерія, РКЦ, Інфократ або іншу. Методи: REST API (якщо біллінг підтримує), файловий обмін XML/CSV за розкладом, прямий запис в базу (з дозволу вендора — рідко, але буває).
На стороні нашого бекенду (Laravel + PostgreSQL) зберігається історія всіх переданих показань з timestamp, device ID та IP — для розбору суперечок про те, чи були показання передані та коли.
Стек: Flutter + Dart для мобільного додатку, Laravel 10 API, PostgreSQL. Push-нагадування через FCM — за 5 днів до початку вікна передачі та в останній день.
Терміни
Додаток для передачи показань (один тип лічильника або кілька, з інтеграцією в біллінг) — від 5 до 8 тижнів. Вартість розраховується індивідуально.







