Skip to content

KihyeokK/StrideSide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StrideSide

StrideSide-logo-1024-with-margins

StrideSide is a real-time running assistant coach powered by Gemini and ElevenLabs Text-to-speech Voice AI. It provides instant personalized coaching, performance feedback, and goal-based motivation during your runs to help you achieve your fitness goals. It is a coach right beside you as you make strides towards a healthier lifestyle 😄 🏃

High Level Flow

high-level-diagram-StrideSide

There are four main components in this projects that communicate with each other:

StrideSide Watch <----> StrideSide Phone <----> Gemini API
                               |
                         ElevenLabs API

Reproducing the App Simulation in Xcode

We did not have time to provide a simple one-click way to allow anyone to reproduce the simulation in Xcode quickly. However, based on our setup, these manual steps should be enough to reproduce the StrideSide iOS and watchOS apps running locally in Xcode, with both targets set up properly.:

  1. git clone the project.
  2. Create a project workspace in Xcode named XCode-StrideSide.
  3. Create a target for the StrideSidePhone, placing the git cloned StrideSidePhone directory's contents under it.
    • Ensure that:
      • The Secrets.xcconfig file is created by going to File > New > File... > Configuration Settings File to hold API keys and link it to the target. Add the following keys to the Secrets.xcconfig file:
        • ELEVENLABS_API_KEY = <Your ElevenLabs API Key>
        • ELEVENLABS_VOICE_ID = <Your ElevenLabs Voice ID>
        • GEMINI_API_KEY = <Your Gemini API Key>
      • The Secrets.xcconfig file is linked to the StrideSidePhone target.
      • The ELEVENLABS_API_KEY and ELEVENLABS_VOICE_ID keys are added to the Secrets.xcconfig file with your ElevenLabs API key and desired voice ID.
      • The info.plist adds the keys to read from the Secrets.xcconfig file:
        • ELEVENLABS_API_KEY with value $(ELEVENLABS_API_KEY)
        • ELEVENLABS_VOICE_ID with value $(ELEVENLABS_VOICE_ID)
        • GEMINI_API_KEY with value $(GEMINI_API_KEY)
  4. Create another target for the StrideSide Watch App, placing the git cloned StrideSideWatch directory's contents under it.
    • Ensure that:
      • The Watch App target is created to pair with the already existing iOS target.
      • The Watch App target has HealthKit and Background Modes capabilities added.
      • The Info.plist of the Watch App target has the necessary privacy usage description keys added.
        • Privacy - Health Share Usage Description
        • Privacy - Health Update Usage Description
      • WatchConnectivity.framework is added to both targets.
  5. Run the StrideSide iOS target on the iOS Simulator, and the StrideSide Watch App target on the watchOS Simulator.

Troubleshooting

Some common issues include:

  • Issues with Target Membership in Xcode.
  • Issues with missing HealthKit permissions in Info.plist.
  • API Key misconfigurations.
  • API Key exceeding usage limits.

About

ConUHacks X! Real-time AI-powered running coach :)

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages