Plataforma Multi-Tenant de Formalización de Operaciones de Servicio
Desarrollado por TRAMA · Ingeniería de Software
MANI es una plataforma de software multi-tenant diseñada para formalizar digitalmente las operaciones de empresas de servicios. Permite conectar a Clientes con Aliados (prestadores de servicio) a través de un ciclo de vida operativo integral:
Este repositorio (MANI-Flutter) aloja el frontend multiplataforma del ecosistema, ofreciendo una experiencia responsiva tanto en Web como en dispositivos móviles.
- Arquitectura Multi-Tenant: Aislamiento lógico por empresa/tenant con personalización de catálogos y cobertura.
- Gestión de Actores: Roles diferenciados para Clientes, Aliados y Administradores de Tenant.
- Ciclo del Servicio en Tiempo Real: Seguimiento paso a paso del estado de la prestación del servicio.
- Contenerización Nativa: Despliegue de producción Web optimizado mediante Docker y Nginx SPA.
- Calidad y DevSecOps Integrado: Validaciones de linter, pruebas automatizadas con cobertura LCOV y análisis estático con SonarCloud.
| Capa | Tecnología |
|---|---|
| Lenguaje & Framework | Flutter (Channel Stable) & Dart (^3.9.2) |
| Diseño / UI | Material Design 3 |
| Servidor Web (Prod) | Nginx (Alpine Linux) |
| Contenedorización | Docker & Docker Buildx |
| Registro de Imágenes | GitHub Container Registry (GHCR) |
| CI / CD | GitHub Actions |
| SAST & Calidad | SonarCloud & Dart Analyze |
- Flutter SDK (
>= 3.9.2) - Dart SDK
- Docker (opcional, para empaquetado web)
git clone https://github.com/Trama-AS/MANI-Flutter.git
cd MANI-FlutterCopia el archivo de ejemplo para definir las variables requeridas:
cp .env.example .envflutter pub get- Web (Chrome):
flutter run -d chrome
- Móvil / Emulador:
flutter run
Para validar el código antes de realizar commits o pull requests:
# 1. Comprobar formato de código
dart format --output=show --set-exit-if-changed .
# 2. Análisis estático (Linter)
flutter analyze
# 3. Pruebas unitarias y de widgets con cobertura
flutter test --coverageEl proyecto cuenta con un Dockerfile multi-stage optimizado para compilar la aplicación Flutter Web y servirla mediante Nginx:
# Construir la imagen localmente
docker build -t mani-flutter:local .
# Ejecutar el contenedor en el puerto 8080
docker run -d -p 8080:80 --name mani-web mani-flutter:localAccede desde el navegador en http://localhost:8080.
El proyecto sigue la estrategia de ramas y promoción de ambientes definida en el ADR-0004:
| Rama | Propósito | Pipeline / Workflows | Artefacto Generado |
|---|---|---|---|
develop |
Integración continua de features | Formato, Linter, Tests con Cobertura, Build Web Check | Imagen Docker ghcr.io/trama-as/mani-flutter:dev |
release |
Estabilización y pruebas de QA | Formato, Linter, Tests con Cobertura, Build Web Check | Imagen Docker ghcr.io/trama-as/mani-flutter:staging y artefacto flutter-web-staging.zip |
main |
Producción oficial | Formato, Linter, Tests, SonarCloud SAST & Quality Gate | Imagen Docker ghcr.io/trama-as/mani-flutter:latest y GitHub Release con tag vX.Y.Z |
Se exige el estándar de Conventional Commits en inglés:
feat:Nueva funcionalidad.fix:Corrección de errores.docs:Cambios en documentación.style:Formato, punto y coma faltantes, etc. (sin cambios en lógica).refactor:Refactorización de código en producción.test:Adición o refactorización de tests.ci:Cambios en configuración de integración continua y pipelines.
Desarrollado por el equipo de ingeniería de TRAMA:
- Organización: TRAMA · Ingeniería de Software
- Repositorio: MANI-Flutter
Este proyecto es propiedad de TRAMA y se rige bajo los términos y condiciones del proyecto MANI.
