Daehan Lim

Header
Project Icon

ACME - Field service management app

📝 Overview

📌 App Introduction: Android field management app integrating custom calendar functionality, offline capabilities, and navigation features
🕒 Duration: May 2021 ~ June 2021
📱 Platform: Native Android app
👥 Team Size: 1 developer
💼 Role: Full Android app development
🛠️ Key Technologies: Android Kotlin MVVM Jetpack Room Calendar Provider API Data Binding WebView
🔗 GitHub: daehan-lim/acme

ACME app dashboard screen ACME app ticket details screen ACME app calendar screen ACME app calendar sync screen ACME app login screen ACME app signup screen ACME app edit screen ACME app maps screen

🛠️ Tech Stack

Kotlin MVVM Room Jetpack Coroutines Navigation Material Dialogs Calendar View ViewBinding DataBinding Google Maps Lottie CardView LiveData Material Design

📋 Project Structure

├── database/                         # Room database layer
│   ├── AcmeDatabase.kt               # Main database configuration
│   ├── dao/                          # Data access objects
│   │   ├── TicketDao.kt              # Ticket CRUD operations
│   │   └── UserDao.kt                # User authentication operations
│   └── model/                        # Database entities
│       ├── Ticket.kt                 # Service ticket data model
│       └── User.kt                   # User account data model
├── repository/                       # Repository pattern implementation
│   ├── TicketRepository.kt           # Ticket data abstraction layer
│   └── UserRepository.kt             # User data abstraction layer
├── ui/                               # MVVM architecture-based UI layer
│   ├── DbAccessViewModel.kt          # Common ViewModel base class
│   ├── login/                        # Authentication features
│   │   ├── LoginActivity.kt          # Login screen
│   │   ├── SignUpActivity.kt         # Registration screen
│   │   ├── LoginSignupViewModel.kt   # Authentication business logic
│   │   └── LoginSignUpFormState.kt   # Form validation state management
│   ├── dashboard/                    # Main dashboard
│   │   ├── MainActivity.kt           # Ticket list and main features
│   │   ├── MainViewModel.kt          # Dashboard data management
│   │   └── TicketsAdapter.kt         # RecyclerView adapter
│   ├── newticket/                    # Ticket creation feature
│   │   ├── NewTicketActivity.kt      # New ticket registration screen
│   │   ├── NewTicketViewModel.kt     # Ticket creation logic
│   │   └── ManageTicketFormState.kt  # Form validation and state management
│   ├── editticket/                   # Ticket modification feature
│   │   ├── EditTicketActivity.kt     # Ticket editing screen
│   │   └── EditTicketViewModel.kt    # Ticket modification logic
│   ├── workticket/                   # Ticket detail management
│   │   ├── WorkTicketActivity.kt     # Ticket details and work screen
│   │   └── OverviewFragment.kt       # Ticket overview fragment
│   ├── calendar/                     # Schedule management feature
│   │   ├── CalendarActivity.kt       # Calendar view screen
│   │   ├── CalendarViewModel.kt      # Schedule data management
│   │   ├── EventsAdapter.kt          # Event list adapter
│   │   └── Extensions.kt             # Calendar extension functions
│   └── directions/                   # Maps and navigation
│       └── GetDirectionsActivity.kt  # WebView-based Google Maps integration
├── model/                            # Business models
│   └── DueTicket.kt                  # Due ticket model
└── util/                             # Utilities and common features
    ├── BindingUtils.kt               # Data binding adapters
    ├── CalendarUtil.kt               # Device calendar integration
    └── Util.kt                       # Common utility functions

🌟 Implementation Details

🚀 Results and Impact