Saltar al contingut principal

Trainium

Trainium és una aplicació Android nativa orientada a la gestió integral d´un gimnàs. Permet als usuaris registrar-se, reservar maquinària, controlar-ne el progrés físic mitjançant registre de pes i seguir plans de nutrició. Disposa d´un sistema de subscripció Premium que amplia les funcionalitats disponibles, així com un rol d´administrador amb accés a la gestió del catàleg de maquinària, les reserves actives i la moderació de plats nutricionals.

Característiques principals​

L'aplicació implementa les funcionalitats següents en la versió final:

  • Autenticació d'usuaris mitjançant DNI i contrasenya, amb recuperació de credencials per email
  • Registre de nous usuaris amb validació de camps (nom, DNI, e-mail, telèfon)
  • Sessió persistent entre arrencades mitjançant SharedPreferences amb durada configurable de 7 dies
  • Reserva de maquinària amb selecció de data i franja horària, amb detecció de solapaments i límit de 1 hora per reserva
  • Sistema de manteniment de maquinària amb cancel·lació automàtica de reserves afectades
  • Notificacions push de recordatori de reserves amb antelació configurable (10, 15, 30, 60 o 120 minuts)
  • Exportació de reserves al calendari del dispositiu
  • Seguiment de pes amb gràfic devolució temporal
  • Catàleg de plats nutricionals amb sistema de suggeriments per part de lusuari i moderació per ladministrador
  • Subscripció Premium amb tres modalitats de preu (mensual, semestral i anual) i registre de pagaments, amb indicador de dies restants
  • Edició de perfil amb foto d'usuari emmagatzemada a Base64
  • Suport de tema clar i fosc amb persistència de preferència mitjançant DataStore
  • Suport multiidioma amb detecció automàtica de l'idioma del sistema i selector manual (12 idiomes disponibles)
  • Pantalla de splash animada amb reproducció de vídeo introductori
  • Càrrega amb skeleton screens durant les consultes a l'API

Stack tecnològic​

CapaTecnologia
LlenguatgeKotlin
UIJetpack Compose + Material 3
NavegacióNavigation Compose 2.7.7
Backend principalSupabase (PostgreSQL) via SDK oficial
Backend alternatiuFirebase Data Connect (GraphQL)
AutenticacióFirebase Auth (declarada)
Persistència localJetpack DataStore Preferences + SharedPreferences
InternacionalitzacióSistema propi de strings a Compose (i18n)
Notificacions AlarmManager + NotificationCompat
Build systemGradle (Kotlin DSL)
IDEAndroid Studio

Estructura de la documentació​

Instal·lació i configuració cobreix els requisits de l'entorn de desenvolupament, la clonació del repositori i la configuració de les credencials de Supabase i Firebase necessàries per compilar el projecte.

Arquitectura descriu l'estructura de mòduls, el graf de navegació, la capa de repositoris i les decisions de disseny adoptades.

Base de dades documenta l'esquema de taules de Supabase, les relacions entre entitats i l'esquema GraphQL del Firebase Data Connect.

Pantalles descriu cada pantalla de l'aplicació, les seves responsabilitats i els fluxos de navegació.

Funcionalitats detalla la implementació de cada bloc funcional principal.

API i serveis explica la integració amb Supabase, Firebase Auth i Firebase Data Connect.

Disseny documenta el sistema de disseny, la paleta de colors, la tipografia i els components d'UI reutilitzables.

Desplegament indica els passos per generar un APK de debug o release.

Referencia recull l'inventari de models de dades, constants i classes d'utilitat.