Skip to content

About

Multi-tenant service operations platform for end-to-end client-ally service lifecycle management. Web & Mobile client built with Flutter.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

134 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MANI — Cliente Flutter (Web & Mobile)

MANI Logo

Plataforma Multi-Tenant de Formalización de Operaciones de Servicio
Desarrollado por TRAMA · Ingeniería de Software

CI Status Docker GHCR Flutter Version Quality Gate Status


📌 Acerca de MANI

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:

$$\text{Solicitud} \longrightarrow \text{Cotización} \longrightarrow \text{Ejecución} \longrightarrow \text{Calificación} \longrightarrow \text{Cierre}$$

Este repositorio (MANI-Flutter) aloja el frontend multiplataforma del ecosistema, ofreciendo una experiencia responsiva tanto en Web como en dispositivos móviles.


🚀 Características Principales

  • 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.

🛠️ Stack Tecnológico

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

⚙️ Configuración y Ejecución Local

Prerrequisitos

1. Clonar el repositorio

git clone https://github.com/Trama-AS/MANI-Flutter.git
cd MANI-Flutter

2. Configurar variables de entorno

Copia el archivo de ejemplo para definir las variables requeridas:

cp .env.example .env

3. Instalar dependencias

flutter pub get

4. Ejecutar la aplicación

  • Web (Chrome):
    flutter run -d chrome
  • Móvil / Emulador:
    flutter run

🧪 Pruebas y Análisis de Calidad

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 --coverage

🐳 Contenedorización con Docker

El 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:local

Accede desde el navegador en http://localhost:8080.


🌿 Flujo de Trabajo y CI/CD (Gitflow)

El proyecto sigue la estrategia de ramas y promoción de ambientes definida en el ADR-0004:

$$\text{develop (Development)} \longrightarrow \text{release (Testing / QA)} \longrightarrow \text{main (Production)}$$

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

Convención de Commits

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.

👥 Equipo y Autoría

Desarrollado por el equipo de ingeniería de TRAMA:


📄 Licencia

Este proyecto es propiedad de TRAMA y se rige bajo los términos y condiciones del proyecto MANI.

About

Multi-tenant service operations platform for end-to-end client-ally service lifecycle management. Web & Mobile client built with Flutter.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages