PaceHealth

Inspiration

PaceHealth was inspired by a simple problem: staying consistent with fitness and wellness is difficult when most plans are not designed around the individual.

Everyone has different goals, lifestyles, exercise experience, available equipment, schedules, and physical considerations. However, many fitness applications still provide generic workout plans that may not fit naturally into a user's daily life.

We wanted to create a more personal health companion that adapts to each user and helps them build sustainable habits at their own pace. Instead of focusing only on numbers, PaceHealth brings together fitness planning, progress tracking, scheduling, nutrition, and AI-powered support in one place.

What it does

PaceHealth is a personalized fitness and wellness application that creates an experience based on each user's profile, goals, and lifestyle.

When users first join PaceHealth, they complete a multi-step onboarding questionnaire covering:

  • Personal information
  • Fitness goals
  • Lifestyle
  • Exercise habits and experience
  • Workout locations and available equipment
  • Physical considerations
  • Preferred workout schedule

This information allows PaceHealth to personalize the user's experience instead of giving everyone the same fitness journey.

After onboarding, users can access four main areas:

Nutrition · Plan · Home · Profile

The Home page acts as the user's wellness dashboard. It includes current weight tracking, fitness progress, workout scheduling, notifications, and period tracking for female users.

The Plan section helps users organize their fitness routine and follow their planned activities, while Nutrition is designed to support healthier food choices and nutrition-related features.

Users can also manage and update their personal information through the Profile section without having to repeat the onboarding process.

PaceHealth also includes an AI companion designed to make the experience more personal and engaging. During onboarding, users can choose a companion pet, which is remembered and used throughout the AI experience.

Rather than treating health as a short-term challenge, PaceHealth is designed to help users gradually build routines they can maintain.

How we built it

PaceHealth was built with a mobile-first architecture using:

  • Flutter and Dart for the mobile frontend
  • FastAPI and Python for the backend
  • Supabase for authentication and database storage
  • AI service endpoints for personalized fitness and wellness features

The Flutter application communicates with our FastAPI backend through REST API endpoints. Supabase handles user authentication and stores profile, onboarding, and wellness-related data.

One important part of our architecture was separating the information collected during onboarding into appropriate profile and personal-information objects before sending it to the backend.

We also implemented authentication handling so protected API requests could use the user's access token while detecting expired sessions.

For progress tracking, values such as height and weight can also be used to calculate BMI:

$$ BMI = \frac{\text{weight in kilograms}}{(\text{height in metres})^2} $$

However, PaceHealth does not treat BMI as the sole measurement of health. The application focuses more broadly on progress, consistency, personal goals, and sustainable routines.

We divided development responsibilities across frontend, backend, and AI features, allowing different parts of the application to be developed simultaneously before integration.

Challenges we ran into

One of our biggest challenges was maintaining consistency across the Flutter models, FastAPI schemas, and Supabase database.

Even a small naming difference could cause an entire request to fail. For example, we needed to clearly distinguish values such as startWeightKg and currentWeightKg and correctly map camelCase API fields to snake_case database columns.

During development, we also encountered:

  • Missing Supabase database columns
  • Expired authentication tokens
  • Date values that were not JSON serializable
  • Differences between frontend, API, and database naming conventions
  • Flutter layout constraints and render-box errors
  • Keeping onboarding and Edit Profile selections synchronized
  • Designing responsive cards and progress indicators for smaller screens

Another challenge was deciding which functionality should be handled locally by the Flutter application and which should belong to the backend.

Notifications were a good example. We could generate in-app notifications locally, but implementing real push notifications would require additional infrastructure such as Firebase Cloud Messaging, device permissions, and backend notification logic.

These challenges taught us that building a complete application is not only about making individual features work. Every layer of the system has to agree on how data is represented and exchanged.

Accomplishments that we're proud of

We are proud that PaceHealth grew from an idea into an integrated mobile application connecting multiple technologies and features.

Some of our biggest accomplishments include:

  • Building a complete multi-step personalized onboarding experience
  • Connecting a Flutter frontend to a FastAPI backend
  • Integrating Supabase authentication and database storage
  • Creating reusable Flutter widgets and shared application state
  • Building editable user profiles that remain consistent with onboarding data
  • Implementing weight and fitness progress tracking
  • Creating workout scheduling and calendar functionality
  • Supporting personalized wellness features based on user information
  • Integrating an AI companion into the user experience
  • Designing a responsive mobile interface across multiple screens
  • Successfully dividing and integrating frontend, backend, and AI development across the team

Most importantly, we created a foundation that can continue growing beyond the hackathon rather than building only a standalone prototype.

What we learned

Throughout the development of PaceHealth, we learned how to:

  • Build a larger Flutter application using reusable widgets and shared state
  • Connect Flutter applications to REST APIs
  • Develop backend APIs using FastAPI
  • Store and retrieve user information using Supabase
  • Design multi-step onboarding flows with validation
  • Keep frontend models aligned with backend API schemas
  • Handle authentication tokens and expired sessions
  • Build responsive interfaces for different mobile screen sizes
  • Coordinate responsibilities across frontend, backend, and AI development

One of our most important lessons was the importance of maintaining a clear data contract.

A feature may work perfectly on the frontend but still fail during integration if the frontend model, backend schema, and database column use different names or data types.

We also learned to think more carefully about feature ownership. Some functionality belongs naturally on the device, while other features require backend services or additional infrastructure.

These lessons helped us understand how the different parts of a real mobile application work together beyond simply building the user interface.

What's next for PaceHealth

PaceHealth already provides the foundation for a personalized fitness and wellness companion, but there are many areas we would like to expand.

Future versions could include:

  • Real push notifications for workouts, progress updates, and wellness reminders
  • Detailed progress charts for visualizing long-term improvements
  • Improved weight trend analysis instead of focusing only on individual measurements
  • Persistent notification history across sessions
  • More personalized AI recommendations based on user progress and habits
  • Exercise recognition through images to help users identify exercises and equipment
  • Food scanning and nutrition analysis using image recognition
  • More flexible menstrual-cycle tracking
  • Offline support with automatic synchronization when the device reconnects
  • Deeper AI personalization that adapts recommendations as the user's goals and routines change

Our long-term goal is for PaceHealth to become more than a fitness tracker. We want it to be a personal wellness companion that understands each user's lifestyle, adapts as they progress, and helps them move toward healthier habits — at their own pace.

Built With

  • claudeapi
  • fastapi
  • flutter
  • pexelsapi
  • supabase
Share this project:

Updates

Submission history