Exercise DB API
- SqlDelight – Multiplatform Database used for persistence
- Ktor – Network Client
- Voyager – Multiplatform navigation library
Designed Using Material 3 Guidelines
The project contains 3 main modules:
Common – Manages code sharing between platform.
The module contains the following sub-modules
- CommonMain – Contains shared code.
Android – Contains Android code
Desktop – Contains Desktop-specific code
The application is divided into four modules:
- Data Layer
- Domain Layer
- ML Layer
- Presentation Layer
Camera capture is achieved using Camera X on Android and Webcam Capture on desktop JVM’s. The use of Webcam Capture, requires the use of Swing Panel, which overlays over Compose Components, thus disabling preview of pose detection results.
The project was aimed at utilizing computer vision techniques, particularly pose estimation and classification to assist in fitness tracking. Pose estimation utilizes Movenet Singlepose Lightning to infer human pose from images captures from the camera. The model was implemented using Kotlin-DL and DeepLearningJava on JVM. The use of different frameworks was due to issues encountered while using one framework to instantiating models on different platforms.