CN
Franz Phillip G. Domingo

Software Engineer Undergraduate.

LiftTrack mobile application greeting page
LiftTrack Workout Tracking App

LiftTrack: A 3D CNN-Based Mobile Solution for Monitoring and Improving Weightlifting Techniques

Capstone Project – Bachelor of Science in Computer Science with specialization in Software Engineering

A Flutter-based mobile application designed to track workout progress and improve lifting form using real-time feedback powered by a 3D Convolutional Neural Network (3D CNN). This project integrates mobile development, machine learning, and cloud computing into a unified fitness solution.

Development Duration: 8 months (July 2024 – February 2025)

Note: The GitHub repository for this project is private due to academic/institutional policy. A demo and code walkthrough are available upon request.
The accompanying capstone research paper is also available upon request.
To explore more, click the AI icon at the bottom-right of this website.


Features

  • Track workouts and log exercise sessions
  • Monitor long-term progress and fitness goals
  • Personalized feedback based on user activity
  • Responsive and intuitive UI for both Android and iOS

My Contributions

  • Flutter Frontend (iOS/Android): Built the cross-platform mobile interface using Dart and Flutter
  • Architecture: Applied Clean Architecture with BLoC for scalable, maintainable code
  • Core Features: Engineered core functionality for workout logging, progress tracking, and authentication
  • UI/UX Design: Designed interactive interfaces with emphasis on clarity and feedback
  • iOS Compatibility: Resolved platform-specific issues and implemented alternatives to Android-only Flutter packages
  • Refactoring: Led the architectural refactor of the Profile module to improve separation of concerns
  • Cloud Infrastructure: Assisted in deploying the 3D CNN model to a remote cloud server due to high compute requirements
  • DevOps Setup: Integrated frontend with backend ML services using a custom deployment pipeline

Challenges Faced

  • iOS Development Barriers: Initial development relied on MacBook simulators, though certain camera functionalities required workarounds. This approach, while cost-effective, presented challenges in testing advanced features.

  • Cross-Platform Integration: Several Android-first Flutter libraries had no iOS alternatives. I researched and implemented cross-platform solutions for seamless functionality.

  • State Management Complexity: Managing state across workout logging, user authentication, and real-time feedback using BLoC required careful design and modularization.

  • Team Coordination: Working with remote teammates and distributed responsibilities meant aligning design and implementation across components like ML, backend, and frontend.

  • Resource Constraints: Project timeline was impacted by curriculum delays. Additionally, a team member's desktop computer, being used as a 24/7 test server, experienced hardware failure due to continuous operation, necessitating infrastructure adjustments.


Project Architecture

This app follows Clean Architecture with modular layers and feature-based organization.

  • Layered Structure: Presentation, Domain, and Data layers are strictly separated
    Read about it
  • Feature Modules: Each major feature (e.g., Profile, Progress, Workout Logging) is independently structured
  • BLoC State Management: Ensures predictable state transitions and testable business logic
  • Recent Improvements: Profile module refactored to comply with architectural goals
    Refactoring Notes

Demo Preview

While the live version is unavailable, here are core views from LiftTrack:

  • Workout logging interface on Android and iOS
  • Progress tracking and dashboard
  • Cloud ML pipeline (architecture diagram available)

Hosting Note:
This project was deployed on a cloud server managed by the project manager. Due to expired hosting and access limitations, the live app is currently offline. A full demo and recorded walkthrough are available upon request.


Development Resources