Introduction

OptiFit

Your personalized fitness companion

Track meals, workouts, and hydration through our intuitive Android app designed for all fitness levels.

Download on App Store Get it on Google Play
OptiFit Mobile App Interface

Project Overview

Optifit is a comprehensive mobile application designed to transform how users approach their fitness journey. By combining intuitive tracking tools with motivational features, we help users develop sustainable healthy habits and lifestyles.

All-in-one health tracking platform
Data visualization for progress tracking
Smart reminders and calender
Personalized recommendations
Tracking Modules: Diet, exercise, and hydration tracking with calendar
OptiFit Architecture Overview

Our Vision

"To make health tracking so enjoyable that wellness becomes second nature, through an app that feels like a trusted friend cheering you on."

Success Metrics

5,000+
Downloads in first month
50%+
Preference over competitors
3x
Weekly active usage

Designed for Every Fitness Journey

OptiFit serves users looking to monitor their fitness journey in a centralized, easy-to-use platform that adapts to different lifestyles and goals.

Time-Strapped Beginners

Uses quick-log features in Water Tracker and Diet Recommendation plans

  • 2-minute signup
  • One-tap water logging
  • Pre-made meal plans

Data-Driven Users

Leverages Calorie Charts and detailed Exercise Recommendation analytics

  • Comprehensive Calorie Charts
  • Advanced exercise analytics
  • Custom workout plans

Profile Managers

Frequently uses User Profile to adjust goals and preferences

  • Easy profile updates
  • Goal overview
  • Progress recalibration

Core Activity Features

Unified Calendar

View all activities in Simple Calendar
Diet and exercise integration
Progress timeline via charts

Seamless Navigation

Intuitive User Dashboard flow
Quick access to all trackers
Consistent back navigation

Workouts That Excite

Extensive exercise guides
Diverse options to select from: cardio, strength...
Custom Workout

Profile Management

Easy updates in User Profile
Secure account deletion
user overview

Nutrition Made Fun

Log Calorie intake
Monitor water intake throughout the day
View recommended diets with meal plans

Ready to start your fitness journey?

Experience OptiFit's intuitive activity flows today

Our Team

Key Contributions

Workout Tracker System

Diet Recommendation System

Technical Skills Gained

Architecture & Development

  • Mastered clean architecture patterns
  • Implemented effective state management solutions

Testing & Quality

  • Applied test isolation principles
  • Implemented comprehensive unit testing
  • Developed acceptance and integration tests
  • Created mock services for reliable testing

Process & Collaboration

  • Practiced continuous refactoring
  • Documented architectural decisions

Lessons Learned

Test Isolation

Learned to create truly isolated unit tests by properly mocking dependencies and understanding the value of small, focused test cases. This improved test reliability and made failures easier to diagnose.

Refactoring

Developed a disciplined approach to incremental refactoring, recognizing that continuous small improvements lead to more maintainable code than periodic large rewrites.

Modular Design

Gained experience designing systems with clear separation of concerns, making features like the workout tracker and diet recommendation system independently maintainable.

Key Contributions

Calorie Tracker System

Daily Reminders

Technical Skills Gained

Tiered Development

  • Implemented code with 3-tier architecture in mind
  • Separated code into relevant layers

Test Coverage

  • Developed code with relevant tests for all methods
  • Created tests for all architecture layers with code coverage in mind

Technical Planning

  • Created detailed project artifacts
  • Developed feature plans with associated time estimates and priorities

Lessons Learned

Importance of Effective Time Management

Learned the importance of setting up structured meeting schedules to avoid rushed iterations

Finding Technical Debt

Identified code smells and technical debt within the system and refactored to reduce

Key Contributions

Simple Calendar

Exercise Recommendation System

Technical Skills Gained

Version Control Management

  • I can use basic git commands to manipulate repositories
  • I can use gitlab to keep track of my progress throughout iterations

Code Smell Identification

  • I can spot solid violations in mine and others programs
  • I know good programming principles to prevent introducing bugs into software

Writing Good Tests

  • I can write good unit, integration and system tests
  • I can use Test Driven Development to make good, non-faulty programs

Lessons Learned

Organization is Key

I learned that keeping organized by setting goals, writing out tasks and reflecting on past work will lead to optimized performance in the long run.

App Development

I learned how to develop an app in android studio using Java, on the presentation, business and persistence layer.

Design Patterns

I learned great design strategies that can be used to make my code easier to work with and to understand

Key Contributions

User Profile Feature

Technical Skills Gained

User Management

  • Learned how to create and update user profiles
  • Worked with basic form validation and data handling

Data Persistence

  • Gained experience storing user data in a database
  • Connected front-end forms to back-end logic

General Development

  • Practiced debugging small issues
  • Improved comfort using development tools

Lessons Learned

Working with User Data

Learned how to manage simple user data and make sure updates work correctly.

Building Small Features

Learned how to build and test a basic feature from start to finish.

Project Video Demo

See It In Action

Watch how real users benefit from OptiFit's features in their daily routines.

Project Retrospective



Evolution from Initial Vision

While the core functionality remained consistent with our initial vision, several aspects evolved significantly:

  • Enhanced Data Integration: The calendar system became more central than originally planned, requiring deeper integration with other components
  • Expanded Testing Scope: Our initial test coverage estimates proved insufficient for the complex interactions between features
  • UI Refinements: User testing revealed the need for more intuitive navigation between fitness tracking and nutrition modules

The final product delivered 120% of our original feature set despite these adaptations.

Key Learnings

Team Development Insights

  • Regular stand-ups prevented work duplication
  • Clear ownership of components improved quality
  • Documentation sharing saved countless hours

Process Improvements

Start: TDD for critical path features
Keep: Bi-weekly code reviews
Stop: Last-minute test writing

Challenges & Solutions

Areas for Improvement

Integration Challenges

Initial iterations underestimated the complexity of maintaining data consistency across:

  • User profile settings
  • Workout logging components
  • Meal tracking systems
Implemented Solutions:
  • Added comprehensive integration tests (achieved 80% coverage)
  • Implemented JUnit setup/teardown for database consistency
  • Created data validation middleware

Project Tracking

Inconsistent use of GitLab's estimation features caused:

  • Difficulty measuring velocity
  • Unclear progress tracking
  • Retrospective data gaps
Lessons Learned:
  • Standardized issue templates with required estimation fields
  • Scheduled weekly time-logging reminders
  • Created estimation guidelines for consistency

System Architecture & Time Allocation

Android Studio

Primary IDE with emulator testing

Java

Core business logic and object modeling

HSQLDB

In-memory database for testing

Mockito

Unit test mocking framework

UI Development
35%
Database Integration
25%
Testing
20%
Bug Fixes
15%
Documentation
5%

What We Would Do Differently

If we could restart this project, we would implement these critical changes:

GitLab Optimization

  • Create standardized issue templates with required fields
  • Consistently log time estimates and actual time spent
  • Implement progress tracking metrics for each iteration

Testing Approach

  • Adopt Test-Driven Development from the beginning
  • Write tests alongside feature development, not at the end
  • Allocate dedicated testing sprints within each iteration

Successes & Recommendations

What Worked Well

  • Team Communication: Effective Telegram chats and weekly syncs
  • Work Distribution: Balanced task assignment based on skills
  • Adaptability: Successful pivots when facing technical hurdles

Future Recommendations

  1. Implement test-driven development from iteration 1
  2. Build time tracking into definition of done
  3. Conduct integration testing earlier in the cycle
  4. Allocate 20% buffer time for unexpected complexities