Sukuwatto
A social fitness platform for planning workouts, tracking performance and exercising with others.
Role: Full-stack developer and project author
Platforms: Web and Android
Technologies: Angular, TypeScript, Django, Django REST Framework, PostgreSQL, Redis, Leaflet, D3.js, Cordova and Docker
Overview
Sukuwatto is a fitness platform that combines workout planning and performance tracking with social and gamification features.
Users can create workout plans, record strength and cardio activities, analyse their progress and share workouts with other members of the community. The application was developed for both the web and Android.
I built Sukuwatto to explore how product design, social interaction and game-inspired progression systems could make fitness tracking more engaging.
Product capabilities
The platform centred on three areas:
- Workout planning: Users could create their own plans or follow public plans created by other members. Progression rules allowed variables such as weight, repetitions, distance and duration to increase over time.
- Activity tracking: Strength workouts could use a catalogue of more than 400 exercises, while outdoor cardio activities supported geolocation-based tracking. Charts and statistics showed how performance changed over time.
- Community: Users could follow one another, share workouts and plans, comment on activities and communicate through instant messaging.
A gamification system awarded experience points for completed activities. Users gained levels and got different character classes according to the type of activities they logged, bringing some of the progression mechanics of role-playing games into the fitness experience.
Architecture
The frontend was developed as an Angular and TypeScript single-page application. Leaflet supported map-based workout data, while D3.js was used for performance visualisations.
The backend was built with Django and Django REST Framework, with PostgreSQL providing relational storage. Django Channels and Redis supported real-time functionality such as messaging and live application updates.
The web application was also packaged as an Android application using Cordova, allowing much of the same frontend code to support both platforms.
Testing and delivery
The project included automated frontend and backend tests, continuous integration and containerised development and deployment workflows.
Docker helped keep the application, database and supporting services consistent across environments and made it easier to reproduce the complete application locally.
What I learned
Sukuwatto was an opportunity to design and build a comparatively large product from end to end. It required me to model a complex domain, support different kinds of physical activity, build interactive data visualisations and coordinate traditional REST operations with real-time features.
It also gave me practical experience balancing technical scope with product decisions: deciding which features belonged together, how they should be presented and how the same experience could work across web and mobile devices.
The project is MIT licensed and its source code is available on GitHub.