Gymnastic Center

Fitness companion in your pocket

View the code:

Course project

In university I took a software development course focused on clean architecture, hexagonal architecture, DDD, and AOP. For the final assignment we built a fitness mobile app with intentionally vague requirements—we had to design the solution, justify trade-offs, and ship something real.

Twelve teams competed on quality and usability. We leaned hard into UX and a polished, usable product—and won.

Product overview

Users can browse courses and blog content about fitness, filter by category or instructor, comment, like/dislike, and track progress per course.

Login screenHome screenCourse informationCourse video playerBlog listingSearch

Demo

API swap (cross-team backends)

The professor required any frontend to run against any team’s backend—backends had to be interchangeable. Other teams restarted the app and changed the API URL in code; we built an API selector on the login screen so we could switch backends at runtime (our team was “Omega”) without rebuilding.

API backend selector on login

Stack

Flutter on the client for cross-platform native UI. NestJS on the server with MongoDB, RabbitMQ for read-model sync, Algolia for search/recommendations, and patterns including CQRS and event sourcing.

Technologies

Frontend

Flutter

Backend

Nest.js
MongoDB
Node.js

Other projects

Left Arrow Grúas UCAB