Projects

Project · Live

Ink-on-bone engraving: a grid of studio mats with small figures mid-pose, one mat conspicuously empty, and a single indigo line arcing in to guide a new figure toward the open spot — an empty place being filled.

Turma Completa

A class-management platform for limited-capacity studios — pilates and similar activities — where every empty spot is lost revenue. It automates attendance, absences, and make-ups, and the moment a student cancels, it notifies the waitlist by SMS or WhatsApp so the spot gets filled.

Turma Completa landing page at turmacompleta.com.br: a pilates studio photo with the headline 'Aulas de capacidade limitada, gestão ilimitada.' and a phone mockup of the student app showing the weekly agenda, attendance, and a waitlist-spot alert. Below, a grid of activity types it serves: Pilates, Yoga, Treinamento Funcional, Crossfit, Artes Marciais, Dança e Ballet, Spinning, and Natação.

Recognition

Turma Completa started as a university project for the entrepreneurship tracks Empreendedorismo e Modelagem de Soluções and Empreendedorismo e Desenvolvimento de Soluções.

It went on to win Pitch Day at PUCRS, where the prize was a full MBA postgraduate course at the university. What began as a class assignment became a real product I kept building and shipping.

What it does

  • Class calendar with monthly, weekly, and daily views.
  • Attendance control per student, with confirmation and absence warnings.
  • Automatic waitlist notifications by SMS or WhatsApp (Infobip) the moment a student cancels, so the open spot can be claimed.
  • Make-ups — a student can claim an available spot for the day directly in the app.
  • Monthly reports with a day-by-day history of attendance, absences, and make-ups.
  • Multi-studio — a superadmin manages multiple independent studios, with an activity log auditing every API mutation.
  • Real-time updates via Server-Sent Events: changes made by other users appear without a refresh.

Access roles

  • Superadmin — manages every studio and can view the app as any coordinator, teacher, or student.
  • Coordinator — manages students, teachers, the class grid, SMS, and studio settings.
  • Teacher — sees the full week, confirms attendance, and adds make-up students to their own classes.
  • Student — sees their weekly schedule, confirms attendance, reports absences, and reserves make-up spots.

Stack

  • React 19 + TypeScript + Tailwind CSS 4 for the app, with a separate Vite landing page.
  • Hono 4 (Node.js) backend exposing a REST API plus an SSE stream for live updates.
  • PostgreSQL 16 for persistence; passwords hashed with scrypt.
  • Infobip for SMS / WhatsApp delivery; Docker for deployment.

Status

Live at turmacompleta.com.br. The source is in a private repository.

Built with

React 19TypeScriptHono 4PostgreSQL 16Tailwind 4Vite 6