Daehan Lim

Header
Project Icon

Gas Consumption Manager

πŸ“ Overview

πŸ“Œ App Introduction: Android application automating manual gas usage management for Cuba’s national Manufactured Gas Company
πŸ•’ Duration: February 20, 2021 ~ March 18, 2021 (1 month)
πŸ“± Platform: Native Android app
🏒 Company: Desoft (Cuba’s national software development company)
πŸ‘₯ Team Size: 1 developer
πŸ’Ό Role: Full Android app development
πŸ› οΈ Key Technologies: Android Kotlin Coroutines MVVM Room VideoView Jetpack Material Design Data Binding Navigation MPAndroidChart
πŸ”— GitHub: daehan-lim/gas-consumption-manager

Gas consumption manager main screen Gas consumption manager calendar screen Gas consumption manager chart screen Gas consumption manager filter screen Gas consumption manager offices screen Gas consumption manager video screen

πŸ“– Project Background

Cuba’s national Manufactured Gas Company faced operational inefficiencies due to their manual gas consumption recording and billing calculation. All procedures from gas meter readings to billing calculations required manual work, leading to time-intensive operations and increased risk of calculation errors. Additionally, customers lacked systematic educational resources for gas meter reading methods and had limited access to customer support. This project developed a comprehensive mobile solution to automate usage calculations, provide educational resources through a video guide, and implement offline-first design for reliable operation.

πŸ“‹ Project Structure

β”œβ”€β”€ features/                           # Feature-based modular structure
β”‚   β”œβ”€β”€ consumption/                    # Gas consumption calculation feature
β”‚   β”‚   β”œβ”€β”€ ConsumptionFragment.kt      # Consumption input and calculation UI
β”‚   β”‚   β”œβ”€β”€ ConsumptionViewModel.kt     # Consumption calculation business logic
β”‚   β”‚   └── ConsumptionViewModelFactory.kt
β”‚   β”œβ”€β”€ history/                        # Usage history and chart analytics
β”‚   β”‚   β”œβ”€β”€ HistoryActivity.kt          # Chart-based analysis screen
β”‚   β”‚   β”œβ”€β”€ HistoryViewModel.kt         # Chart data processing logic
β”‚   β”‚   └── HistoryViewModelFactory.kt
β”‚   β”œβ”€β”€ offices/                        # Branch office contact directory
β”‚   β”‚   β”œβ”€β”€ ComercialOfficesFragment.kt # Branch office list UI
β”‚   β”‚   β”œβ”€β”€ ComercialOfficesAdapter.kt  # RecyclerView adapter
β”‚   β”‚   └── ComercialOfficesViewModel.kt
β”‚   β”œβ”€β”€ readcounter/                    # Meter reading guide
β”‚   β”‚   β”œβ”€β”€ ReadCounterFragment.kt      # Video guide screen
β”‚   β”‚   └── ReadCounterViewModel.kt
β”‚   β”œβ”€β”€ about/                          # App information and contacts
β”‚   β”‚   └── AboutActivity.kt
β”‚   └── splash/                         # Splash screen
β”‚       └── SplashActivity.kt
β”œβ”€β”€ database/                           # Room database layer
β”‚   β”œβ”€β”€ Consumption.kt                  # Consumption data entity
β”‚   β”œβ”€β”€ ConsumptionDao.kt               # Data access object
β”‚   └── ConsumptionDatabase.kt          # Database configuration
β”œβ”€β”€ model/                              # Data models
β”‚   └── ComercialOffice.kt              # Branch office information model
β”œβ”€β”€ util/                               # Utility classes
β”‚   β”œβ”€β”€ BindingUtils.kt                 # Data binding adapters
β”‚   └── Util.kt                         # Common utility functions
└── MainActivity.kt                     # Main activity and navigation

🌟 Implementation Details

Room Database-based Offline Data Management and Storage

Automated Gas Usage Calculation with Real-Time Validation

Interactive Data Visualization Using MPAndroidChart

VideoView-based Educational Video Guide

Customer Support Directory with Direct Communication

User Experience Optimization & Accessibility Improvements

Development Best Practices and Code Quality

πŸš€ Results and Impact