Yes, here are already countless gym apps out there. But in my eyes they all lack something. Whilst some offer great flexibility in tracking and creating your workouts, they often lack in-depth statistics - which I as a data analyst obviously love. Another feature I was often missing is the gamifcation of workouts. I want to be able to level up and unlock new rewards whilst sweating in the gym.
So I decided to build my own gym app that satisfied the following requirements:
Easy to use
Responsive - so I can use it on my phone during workouts
Statistics
Gamification
Whilst I was at it I also decided to add a social function. You are able to add your workout buddies as friends and see their progress, achievments and latest workouts.
Technology Stack
In many of my projects, including this one, I leverage the power of React and Next.js for the front-end development. Next.js, in particular, shines in complex projects where efficient routing and state management are crucial, significantly accelerating the development process with its flexibility.
Leveraging Next.js's server-side capabilities, I opted against creating a traditional backend. Instead, I explored the potential of Supabase, utilizing it for data storage within a PostgreSQL database. Supabase's advanced features, including extended database triggers and functions, have been instrumental in implementing backend logic. This approach has streamlined processes such as reward validation, the integration of social features, and security (e.g. users can only see their own and friend's workouts) with ease.
Implementing backend logic directly within the database presents a interesting approach; however, I also think that this strategy may encounter limitations as project complexity increases.