91 lines
4.3 KiB
Markdown
91 lines
4.3 KiB
Markdown
# 
|
|
|
|
# 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
|
|
|
|
```bash
|
|
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 |
|