Mobile App Development for Utility Meter Reading (Utilities)
The task seems simple: resident enters numbers — data goes to system. In reality it's a form with multiple validation layers, billing integration, and OCR character recognition that half the time mistakes handwritten meter dial digits.
Basic Mechanics and Where It Breaks
Resident opens app, sees list of meters for their account (cold water, hot water, electricity, gas), enters readings, submits. This is 80% of cases. The remaining 20% create 80% of problems.
Reading Validation. Readings can't be lower than previous — except meter replacement. If difference between current and previous exceeds threshold (e.g., 50 cubic meters of water per month — suspicious), system should ask confirmation, not silently accept. Thresholds are configurable admin parameters, not hardcoded constants.
Submission Deadline. Most HOAs accept readings 15–25 of month. Outside this window, form should lock with clear message — not just "error" but "Readings accepted 15–25 of month. Next window opens in X days". Implement via server config, not app logic.
OCR Input via Camera. ML Kit Text Recognition (Android) / Vision Framework (iOS) for digit recognition from meter screen. Theoretically convenient — in practice, roller meter recognition with glare works 60–70% of time. So OCR is supplementary tool, not replacement for manual input. Recognition result fills field; resident confirms or corrects.
Integration with Billing
The most important part. Data must reach management company's accounting system — 1C:Бухгалтерия, RCC, Infocrat, or other. Methods: REST API (if billing supports), XML/CSV file exchange on schedule, direct database write (with vendor permission — rare but happens).
Our backend (Laravel + PostgreSQL) stores history of all readings with timestamp, device ID, IP — for dispute resolution about whether readings were submitted and when.
Stack: Flutter + Dart for mobile app, Laravel 10 API, PostgreSQL. Push reminders via FCM — 5 days before window opening and on final day.
Timeline
App for meter reading submission (single meter type or multiple, with billing integration) — 5 to 8 weeks. Pricing is calculated individually.







