Sukuwatto

A social fitness platform for planning workouts, tracking performance and exercising with others.

Sukuwatto user activity feed
The Sukuwatto user activity feed

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.

Sukuwatto running on Android
Sukuwatto running on Android

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.