Proyecto SOMA
Sistema de gestión para gimnasios, desarrollado como trabajo integrador para la materia Taller de Integración de la Licenciatura en Sistemas de Información.
SOMA es una aplicación de escritorio que le permite al administrador de un gimnasio gestionar sus clientes, turnos, pagos y horarios desde un solo lugar, reemplazando las planillas manuales y los mensajes de WhatsApp dispersos.
Equipo
| Integrante | Rol principal |
|---|---|
| Santángelo, Pablo | Backend |
| Marioni, Alex | Frontend |
Funcionalidades
- Usuarios: alta, baja, modificación y búsqueda de clientes; gestión de roles (admin, superadmin).
- Pagos: registro de cuotas con recargo automático por mora; exportación a PDF y CSV; importación desde CSV.
- Horarios y turnos: configuración de franjas horarias y cupos; reserva de turnos por cliente.
- Actividades y tipos de cuota: configuración de las actividades del gimnasio y los planes de pago.
- Notificación de deuda: envío directo de mensaje de WhatsApp al cliente moroso.
- Autenticación: inicio de sesión con contraseña; cambio de contraseña.
Stack tecnológico
| Capa | Tecnología |
|---|---|
| Frontend | Flutter (Dart) |
| Backend | Supabase (PostgreSQL + Edge Functions) |
| Lenguajes | Dart · PL/pgSQL · TypeScript (Deno) |
| Plataforma | Windows (compilación nativa) |
La lógica de negocio vive en funciones PL/pgSQL (fc_*) dentro de la base de datos. La app Flutter consume esas funciones a través de la API REST de Supabase.
Estructura del repositorio
SOMA-PRO/
├── flutter_soma_app/ # App Flutter (código fuente principal)
│ └── lib/
│ ├── core/ # Configuración, tema, utilidades compartidas
│ └── features/ # Módulos por dominio (pagos, turnos, usuarios, ...)
│ └── <feature>/
│ ├── domain/ # Entidades y lógica de negocio
│ ├── data/ # Acceso a datos (repositorios, Supabase)
│ └── presentation/ # Pantallas y widgets
├── soma_pro_updater/ # Actualizador automático de la app
├── supabase/ # Proyecto Supabase
│ ├── migrations/ # Migraciones de la base de datos
│ └── seed.sql # Datos iniciales
├── database/ # Scripts SQL: funciones, triggers, esquema, backups
│ ├── functions/
│ ├── triggers/
│ ├── schema/
│ └── backup/
└── Documentation/ # Documentación del proyecto
├── DocumentacionTecnicaSoma.pdf # Documentación técnica
└── ManualDeUsuarioSoma.pdf # Manual de usuario
Cada feature de la app sigue una arquitectura de tres capas (domain → data → presentation), organizada por módulo funcional.
Requisitos para compilar
- Flutter SDK ≥ 3.10
- Dart SDK ≥ 3.10
- Supabase CLI (para desarrollo local con la base de datos)
- Windows 10+ (para compilar la app de escritorio)
Cómo ejecutar
git clone https://gitea.fcyt.uader.edu.ar/alumnos_ti/SOMA-PRO.git
cd SOMA-PRO/flutter_soma_app
flutter pub get
flutter run -d windows
La app necesita conectarse a una instancia de Supabase. Los archivos de configuración del entorno están en flutter_soma_app/config/.
Documentación
| Documento | Contenido |
|---|---|
DocumentacionTecnicaSoma.pdf |
Arquitectura, decisiones técnicas, modelo de datos |
ManualDeUsuarioSoma.pdf |
Guía de uso de la aplicación |
