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
- Flutter: Write your first app
- Flutter Cookbook
- Flutter Docs – Official API reference and samples