Inspiration
Big proponents of counter culture, we aim to revolutionize the fitness world by making sure none of your lazy friends ever miss a workout again. We were looking for a creative way to demonstrate our skills, and when we heard about Twilio API on the sponsor list, the idea just clicked.
What it does
You can sign up for the FitBuddy service on our website, where you simply need to add a phone number, name, and your weekly schedule. FitBuddy will then send you text messages incessantly throughout every free period in your day, to remind you that you better be hitting the gym instead of sitting around. We applied a machine learning algorithm, such that FitBuddy will apply many different message techniques throughout your use, in order to cater the messages to what works best for you, in terms of message characteristics, such as aggressiveness, encouragement, deceptiveness, and quirkiness. It will measure success through its built in lie detection system, which will follow up each text with a line of questioning on obscure details of Pottruck, to ensure that you are truly at the gym. There are also voice call options for if you call the number, where it will recite one of its 'motivational' messages.
How we built it
On the frontend: We started by creating an initial prototype using Javascript and HTML CSS. After creating first iteration of the website, we decided to use React. Utilizing React Hooks, we created a signup form website that takes in user information and posts requests to our server online.
Server Side: We utilized fastAPI, ngrok and webhooks to connect the javascript frontend, python backend and twilio API components together to create our project. It was quite a learning curve to familiarize ourselves with such different technologies in such short time, but it was very rewarding too.
On the backend: We used a simple gradient ascent algorithm to improve on our strategy with each iteration, written over a function which approximates the success of different message characteristics by a limit number of trials (reminding you to go to the gym and lie detection). We then used schedule information to add a delay before each new message is sent based on historical success at a given time, and your information and upcoming and previous calendar events. For the line of questioning for lie detection, we have probabilities that compound to increase or decrease the confidence in a customers status (at the gym or not), and then make the best guess about their true status based on their answers.
In developing our system set of questions and responses, we made use of openAI's API to chategorize our messages and
Challenges we ran into
Struggled to link frontend with backend, to transfer user data into the server circulation. Ran into server side bugs including improper delay times and incompatibility with frontend and backend structure.
Accomplishments that we're proud of
We successfully made a machine learning algorithm and backend processing that was effective. We also successfully set up a server type setup where multiple asynchronous functions are running with Twilio in order to manage multiple customers. We also were able to link our website with our server side program, so that it could take in new data and input new users
What we learned
We learned front end development, and use of react for our front end website processing. We learned use of openAI API and Twilio API for our project. We also learned a lot of useful processing techniques for our backend data processing and structures.
What's next for FitBuddy
We would like to make a much more complex line of lie detection questions, which is more intelligent and situationally adaptive. We would also like to expand on this by allowing questions with non-static answers, such as how busy the gym is, which we could source via Google's live measurements. We would also like to employ generative AI, such that we could generate an message matching exact sentiment parameters, instead of finding the closest match within our preset data. We would like to include database support for storing user data long term, and using AI to make our initial messages much more personalized, including gifs, videos, calls, and even personal user data in the texts.

Log in or sign up for Devpost to join the conversation.