Files
Pablo 25289ff75d Commit inicial
Voy a ir subiendo las cosas de a poco porque sinó rebota la conexión
2026-08-22 18:57:30 -03:00

91 lines
4.3 KiB
Markdown

# ![Logo del Proyecto SOMA](./soma_pro_updater/assets/logo.png)
# Proyecto SOMA
![Versión](https://img.shields.io/badge/versión-1.0.0-blue.svg)
![Estado del proyecto](https://img.shields.io/badge/estado-en%20producción-brightgreen)
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 |