We all know by now that as an effect of Covid-19, large numbers of people are losing their jobs at no fault of their own, but globally, fitness professionals are getting hit harder than most. From Taekwondo, to CrossFit, to Pilates, the fitness industry is a powerhouse for small businesses and independent professionals, but there are drawbacks to not being a part of large corporations. Our eyes were immediately opened to the sharp decrease in people attending the gym, forcing most trainers and instructors out of work. The problem plaguing them isn't that they face huge competition, or that they've lost demand, but that they, as individuals, can't market themselves or put themselves into the world. The best way to help these professionals get back on their feet is to build an application that allows them to safely develop and market their business in a place that will be seen, and trusted by many users. Seamless transactions, cutting edge technology, and a passion for fitness set us aside. Accomplishing this was the goal of ProFit, and we are thrilled to have completed it, ready to share with the world. ProFit - Financial profit for fitness professionals!
What it does
ProFit targets the many needs of fitness professionals such that they can build and spread their business across a platform that encourages social distancing and ease of access for both trainers and users. Trainers can build and customize a personal page detailing their skills, prices, and other specifics as to peak interest in trainees similar to them, this works vice versa as well. Flexible pricing options at every step of the way lets professionals using the app run their business on their terms, not on those of the epidemic.
It allows trainers to schedule both live streams, which can be broadcast to thousands of viewers, and video recordings for their customers, as well as entering 1v1 private sessions where users can emulate the experience of having a personal trainer, just like if things were normal. Furthermore, our On Demand option enables trainers to put out pre-recorded videos, with simple workout routines that customers can purchase and view at their leisure in seconds.
With cutting edge technology like pose detection for aiding trainers in assessing customer performance beyond the 2D limitations of screens, and dashboards and statistical tracking of customer purchase that enable professionals to assess when / where / how they can ideally maximize their profits and grow their brand, our app transcends what's possible with rudimentary solutions like logistically difficult zoom calls, or videos online. This, implemented with our seamless in-app payment system, allows for groups of trainers to finally have a place to grow their business around during around and beyond the times of Covid-19. Customers, in turn, are given an easy, accessible platform where in spite of the virus they can continue to pursue their aspirations of getting in shape.
How we built it
ProFit is the fusion of new technology, and beautiful design. To build our app, we used flutter, a popular cross-platform app development framework that works with android and iOS. It's great for quick development cycles since refreshing and reloading code is so fast. It's also really flexible, and allows development of beautiful user interfaces. For our database storage, the core of our app that allows for scheduling, tracking and storage, we used Firebase Storage, Authentication, and Firestore.
For video storage, for our on demand functionality, we also use firebase storage. Due to the limitations of firebase storage, and to limit cloud storage costs, we use ffmpeg, an open source project dedicated to video compression. We implement this and write video streaming code to optimize video storage by over 70x and enables us to go much further with much less with the ondemand service within our app.
Our streaming platform is built using agora.io, a platform which simplifies the process of creating high quality streaming experiences. We use their flutter SDK to do this. For our pose detection functionality we use tensor flow lite's flutter plugin, and use an implementation of the famous PoseNet architecture for real-time pose detection which, using algorithms on a time-series, we can accurately generate scores on how accurate student actions are given a 'correct' action, this technology generalizes to any motions, which is good considering the wide diversity our platform caters to (danse, exercise, martial arts, etc.).
Perhaps most importantly, money, or the in-app transactions that define our app as a marketplace where fitness professionals legitimately can make up for, and thrive despite the coronavirus and beyond. This was powered by none other than Square's in app payment SDK.
Challenges we ran into
We had more than our fair share of errors and challenges to overcome in the process of creating ProFit. We'll go ahead and put them in list format for you :)
- Setting up pose detection on TensorFlow lite was shockingly difficult. Once we had a model we had to spend a long time figuring out why it wouldn't load, to learn we had to set it up slightly differently with another model file.
- The process for getting video compression, and setting up that aspect of our service was perhaps one of the toughest, more grueling parts of the app since first we rapidly ran out of storage, learning we needed to compress, going through several compression libraries, optimizing the algorithms to the point where compression was sufficient, and everything ended up taking a couple of days. Truly the technical challenge of the project.
- One of the more frustrating (and somewhat funny) problems we ran into a lot during the project was work overlap and git errors, accidentally doing the same stuff as some of our counterparts, having code bounce between working and not working between commits, and a whole pandemonium of other annoying errors. Either way, we worked through it and are all the prouder.
Accomplishments that we're proud of
We're proud that we were able to work through this app timely and finish everything that we sought to accomplish with this app. We're proud that we were able to finish on time, which we weren't necessarily expecting fully, and take the app to it's full potential.
What we learned
There was a ton of technical learning that went on. We learned about flare and flutter animations, ffmpeg and video compression, streaming apps, in-app payment with square, tflite (we already new machine learning), and more. Technical skills aside, we all learned a great deal about group communication and working as a team. This aspect of a hackathon is magnified when given only a short time to complete the project, where each mistake could be crucial. We're also very proud of learning about Square's system of payments, and the ease for developers like us to integrate Square tools into the app, which helped us expand our coding knowledge to the business area as well.
What's next for ProFit
As cliche as it sounds, we truly plan on releasing ProFit to the public as quickly as possible in order to get this platform available to trainers worldwide and to give users a way to continue their physical lifestyle throughout the social isolation period. We see this legitimately as a business idea that we want to build a startup out of and grow to become the biggest fitness app out there, this is just the starting ground. Expanding our data analytics (recommendation tools on pricing for trainers), user experience (features like calorie counters, group fitness, social aspect), and much more are all great for this app, the sky really is the limit!!! Higher integrations with square tools, which are widely diverse, for trainer payment will enhance our app even more. This is not only a great startup idea, but something that can have a positive impact on millions of lives, and we don't plan on leaving this impact short.
**Note - due to file size constraints and some time constraints, we weren't able to include fully integrating pose detection scoring into our app. Nonetheless if you wanted to try that out here's an apk!