I was inspired to create fixercise because I've gotten out of shape recently and wanted a workout experience that is more bite sized and go-at-your-own-pace. I also thought about how competing with worldwide users for a space on a leaderboard would definitely be a good motivator for me and many others. I also just really liked the idea of making an 80s themed website/video
What it does
Fixercise is a social media platform that allows users to compete in workouts with others. User's can create a new deck of cards based off of what muscle group they're targeting, along with what difficulty they want their experience to be at. When a new deck is created, users are presented with each card and upon completion of them, are rewarded points that can help them level up and earn achievements. User's can view their spot in the leaderboard and what level they're at in the respective pages.
How I built it
For the entire core of Fixercise I used asp.net core. Users accounts were controlled and managed with Identity core and the entity framework. I extended the initial class to make user binding strings a part of user accounts. The binding string is used to connect a user to a separate database that keeps their current scores. The most algorithmic-ally daunting task was web scraping in an efficient algorithmic manner. My algorithm ended up utilizing string to string dictionaries holding every aspect of the card. SignalR websockets were used to create an environment where get or post requests aren't needed to retrieve the next card in a deck.
Challenges I ran into
Working with asp.net identity core was very daunting, as this is only my 2nd time properly using it. Extending users worked better than the first time, but eventually I was stuck at an authentication error. Several headaches and google searches later, I found out that I forgot to add a single
Services.UseAuthentication() in my startup class. Another challenge was the webscraping tuning, to me personally it's a really tedious task to manipulate nodes and find out which nodes will actually give me the result I needed.
Accomplishments that I'm proud of
I am proud of how far I've gotten in my understanding of asp.net's architecture and how to use identity users more properly. In the past, although there have been improvements, my understanding of how I should use classes and routing properly have been minimal in the past. This time however, my focal shift from solely algorithm to a more UI based standpoint really made my application's front and back end work more hand in hand.
What I learned
I learnt a ton of helpful tips about UI work, such as centering a button and how margins and div hierarchy work, I also am extremely grateful for how much I learnt about patience and debugging, as the two huge time wasting bugs were simply typos or forgetting a line of code.
What's next for Fixercise
In the future, Fixercise will definitely need some UI reworks, but for the most part I'd work on migrating databases to a cloud based service, along with deployment to Azure for real life usage.