This README file provides an overview of the HorasTicketTrackerIO project, which is an Android application for tracking support tickets related to incidents in a software system. The document covers the project's tech stack, functional and non-functional requirements, and system architecture. Please refer to the Software Requirement Specification for more detailed information.
- Introduction
- Tech Stack
- Functional Requirements
- Non-Functional Requirements
- System Architecture
- Conclusion and Results
HorasTicketTrackerIO is an Android application for tracking support tickets related to incidents in a software system. The purpose of this project is to provide a platform for managing and monitoring tickets through various stages, from creation to resolution.
- Platform: Android Native
- Language: Kotlin
- Android 8 Oreo - API 26
- Architecture: MVVM (Model-View-ViewModel)
- Android Components and Libraries: Android Jetpack, Room, RecyclerView
- Version Control: Git
- Build System: Gradle KTS
- User Authentication
- Ticket Management (Create, Edit, Archive)
- Ticket Display
- Ticket Filtering
- Performance
- Usability
- Maintainability
- Extensibility
- Testing
The application follows the MVVM architectural pattern, separating the UI components, business logic, and data layers. The data layer will use a local Room database for ticket storage and management.
└── mx
└── overcome
└── horastickettrackerio
├── data
│ ├── local
│ │ ├── dao
│ │ │ └── TicketDao.kt
│ │ ├── database
│ │ │ ├── Converters.kt
│ │ │ └── TicketDatabase.kt
│ │ └── model
│ │ ├── Ticket.kt
│ │ └── TicketProvider.kt
│ └── model
│ └── repository
│ └── TicketRepository.kt
├── domain
│ └── usecase
│ ├── AchieveTicketUseCase.kt
│ ├── CreateTicketUseCase.kt
│ ├── GetTicketsUseCase.kt
│ └── UpdateTicketUseCase.kt
├── presentation
│ ├── adapter
│ │ ├── OnTicketClickListener.kt
│ │ └── TicketListAdapter.kt
│ ├── ui
│ │ ├── activity
│ │ │ └── MainActivity.kt
│ │ ├── fragment
│ │ │ ├── TicketDetailFragment.kt
│ │ │ └── TicketListFragment.kt
│ │ └── login
│ │ └── Login.kt
│ └── viewmodel
│ └── TicketViewModel.kt
└── utils
├── Constrants.kt
├── Extension.kt
├── PriorityTicket.kt
├── TicketState.kt
└── TicketType.kt
Due to time limitations, an MVP was accomplished that can show a mock list of tickets, allowing users to select the details of the ticket and displaying each ticket differently depending on its state. The APK provided is not signed (not able to be uploaded to the Play Store) but can be tested by allowing the permission to install it on an Android device.
To install the HorasTicketTrackerIO APK on your Android device, follow these steps:
- Download the APK file from the provided link.
- On your Android device, go to Settings > Security.
- Enable the Unknown Sources option to allow installation of apps from sources other than the Play Store.
- Navigate to the downloaded APK file using a file manager and tap on it to start the installation process.
- Follow the on-screen prompts to complete the installation.
- Launch the HorasTicketTrackerIO app on your Android device.
- Authenticate yourself by entering your name.
- Use the app to manage and monitor tickets, including creating new tickets, editing existing ones, and archiving resolved tickets.
- Filter the ticket list by ticket state (open, in progress, resolved) as needed.