commit 25289ff75df6d6c0952fa44723821f4290ce0f04 Author: Pablo Date: Sat Aug 22 18:57:30 2026 -0300 Commit inicial Voy a ir subiendo las cosas de a poco porque sinó rebota la conexión diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ca63224 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +# Configuración de entorno (contiene URLs y keys de Supabase) +flutter_soma_app/config/dev.json +flutter_soma_app/config/prod.json + +# Estado local del CLI de Supabase +supabase/.temp/ + +# Android: paths locales del SDK +flutter_soma_app/android/local.properties + +# Artefactos de build y release +/release/ +/gh-pages/ + +# macOS / editor +.DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..f58bad1 --- /dev/null +++ b/README.md @@ -0,0 +1,90 @@ +# ![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, ...) +│ └── / +│ ├── 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 |