The past few years my brothers and I have held an annual “workout” competition �ª�Ȏ.
The workout competition goes as follows:
- Each competitor must workout 4 times a week
- Weeks start on Mondays and end on Sundays
- Workouts should typically be no less than 30 minutes in length (but this is always a judgement call)
- If you workout 4 times, you get 1 point. If you workout 3 times in a week, you get 0 points.
- If you start any given week behind the leader, you have the opportunity to “make up” points by working out more than 4 times.
- If a trailing competitor workouts out 6 times in one week, they will accrue 1 point, and hold two “carryover” workouts into the next week. If they again workout 6 times, earning two more carryover points, the trailing competitor earns 2 points, and thus closes the gap.
At the end of the year, the person with the most points wins the competition, and the losers must gain the champion’s favor by fulfilling his wish(es). Last year, the winner’s wish was a Brazilian steakhouse outing (which, frankly, has gone unfulfilled so far �ȅ.
In order to track this, we (I) typically would send out a text update for the week confirming how many workouts each of us did, and tallying the total score for the year.
Like any task requiring human diligence and consistency, this tracking mechanism was fraught with error and susceptible to mistakes.
So I thought I’d do something different, and create an automated tool to do this tracking for me.
Say hello to ‘Just Do It’
That’s where “Just Do It” comes in. This homemade app is fraught with copyright infringement and repurposing of brand images, but its premise is original, whatever the workout is you’re trying to do, do it.
As my best friend told me, the best workout is the one that you do. Consistency is key, and that’s really the goal of my app, make it as easy as possible to document a workout.
Users can set up “competitions” to compete with one another and see leaderboards.
Screenshots & Features
Below are a few selected screenshots of the application. At a high level here are the possible user flows:
- Add/Delete a Workout
- Add/Delete a Competition
- Edit Display Name
- View leaderboards for a Competition
This isn’t truly an application, but a progressive web application, that can be installed on computers, Android, and iPhones, but isn’t downloaded through the App Store, and cannot send push notifications.
I debated about developing a “true” application using Microsoft’s Xamarin, but ultimately decided against it, as I wasn’t a fan of the boilerplate & non web-standards code required to develop the app. Ultimately I ended up using Microsoft’s Blazor WebAssembly framework, with the intention/expectation to leverage Mobile Blazor Bindings in the not so distant future.
In terms of architecture, the application is hosted as an Azure App Service, which I found incredibly easy to publish, and can do so directly from Visual Studio, which is pretty cool.
Here are some tech specs:
|Hosting Service||Azure, using Azure App Service|
|Database||Azure SQL DB, using Code-First Entity Framework|
|Backend||ASP.NET Core Hosted – WebAPI|
|Authentication||Azure Active Directory|
With the exception of Authorization & Authentication, developing this app was a breeze, with little frustration or wheel-spinning. I have found Microsoft’s Authentication/Identity tools to be lackluster and burdensome.
This app is no “feat of technology”, but it is a tool that makes my life better. I’m grateful to have the skillset to create something like this in a weekend that has the power to transform my workout diligence this year. Especially when I hold lofty weight loss goals for the year.
I enjoy the spirit of the competition, and think leaning on peers to instill a sense of community and responsibility in working out. I hope you enjoyed, and shoot me an email or message if you want in!
- 33333333333333,33.33333333333333,33.33333333333333 ↵