Truck Ticket App is app that records truck’s inbound and outbound weight through weighbridge.
(Note: For now, because of the tight deadline. The focus of this project is the overall Technical Design. So the UI design only shows the content, not a beautiful UI design.)
- Make sure you already set
$JAVA_HOME
with JDK 17.x.x version to be able run the./gradlew
command. (you can check by runningecho $JAVA_HOME
in your terminal, if it's empty please search through the internet "How to setup JAVA_HOME in Mac/Windows/Ubuntu") - You can run
./gradlew test
to only run unit tests and generate the coverage report that will generated in the/build/reports/jacoco/testDebugUnitTestCoverage/
in each module. (exceptcore
andapp
) - Or also you can tun
./gradlew build
that will build the project alongside with the./gradlew test
in the end.
- Multi module Clean Architecture
- MVVM Design pattern
- Single Activity
- Jetpack Compose Declarative UI
- Main Library (see detail: libs.versions.toml) :
- Concurrency: Kotlin Coroutine
- Network database: Firebase Firestore
- Local database: Room
- Dependency injection: Dagger Hilt
- Unit Testing: JUnit
- Test Double: Mockito
Screen_recording_20240709_064937.mp4
Note: If you want to explore the coverage, you can download the folder for each module in the given link below then open the index.html in the browser.
Module | Screenshot | Link |
---|---|---|
Schema | ![]() |
schema |
Domain | ![]() |
domain |
Data | ![]() |
data |
Common | ![]() |
common |