Daehan Lim

Header
Project Icon

Government Portal App

📝 Overview

📌 App Introduction: Android app for the official government portal of the city of Pinar del Rio, Cuba
🕒 Duration: February 2021 ~ April 2021
📱 Platform: Native Android app
🏢 Company: Desoft (Cuba’s national software development company)
👥 Team Size: 2 developers
💼 Role: Responsible for legacy code modernization and development of citizen service module
🛠️ Key Technologies: Kotlin MVVM Retrofit Room Jetpack ViewPager2 WebView JavaScript Coroutines Moshi
🔗 GitHub: daehan-lim/government-portal-app

Government portal menu screen District representative portal screen Request submission form screen Code input screen User guide screen

📖 Project Background

There was a growing need to develop a mobile app that would allow citizens of Pinar del Río, Cuba, to seamlessly access the government portal, which had previously been limited to the existing website. The website was optimized for desktop use, causing inconvenience for mobile users when submitting government requests, accessing local information, or using administrative services. In particular, urgent improvements were needed in mobile accessibility to core services such as access to district representative information, tracking the status of civil requests, and browsing local classified listings. This led to developing a government portal app to provide intuitive mobile services for citizens. As part of this project, I was responsible for modernizing the existing legacy codebase.

🛠️ Tech Stack

Kotlin MVVM Room RETROFIT Jetpack Coroutines ViewPager2 LiveData DataBinding ViewBinding Moshi WebView HTML5 JavaScript Material Design

📋 Project Structure

├── data/                                    # Data layer
│   ├── database/                            # Room local database
│   │   └── classifieddatabase/              # Local property database
│   │       ├── Classified.kt                # Property information entity
│   │       ├── ClassifiedDao.kt             # Data access object
│   │       └── ClassifiedDatabase.kt        # Database configuration
│   ├── model/                               # Data model classes
│   │   ├── DelegateData.kt                  # Local representative information
│   │   ├── ClassifiedApi.kt                 # Property API response model
│   │   ├── Municipality.kt                  # Administrative district model
│   │   └── gestiondelegado/                 # Representative management models
│   └── network/                             # Network communication layer
│       └── PortalGobiernoApiService.kt      # REST API service
├── ui/                                      # Presentation layer
│   ├── classified/                          # Local property features
│   │   ├── ClassifiedFragment.kt            # Property listings screen
│   │   ├── ClassifiedViewModel.kt           # Property business logic
│   │   ├── ClassifiedAdapter.kt             # RecyclerView adapter
│   │   └── classifieddetail/                # Property detail information
│   ├── gestiondelegado/                     # Local representative management
│   │   ├── GestionDelegadoFragment.kt       # Representative menu screen
│   │   └── gestiondelegadosection/          # Representative service tabs
│   │       ├── GestionSectionActivity.kt    # ViewPager2-based tab interface
│   │       ├── GestionSectionViewModel.kt   # Shared business logic
│   │       ├── DelegadoDataFragment.kt      # Representative information lookup
│   │       ├── DispatchFragment.kt          # Online civil petition submission
│   │       └── ProcedureFollowUpFragment.kt # Civil petition tracking
│   └── goverment/                           # Government services WebView
│       └── GovernmentFragment.kt            # JavaScript injection WebView
├── misc/                                    # Utilities and common features
│   ├── Util.kt                              # Date formatting and other utilities
│   └── Converters.kt                        # Room type converters
└── BindingUtils.kt                          # Data binding adapters

🌟 Key Contributions

🚀 Results and Impact