# EPICA: EPIC-MGN-019 - Apps Moviles por Perfil

## Metadata

| Campo | Valor |
|-------|-------|
| **ID** | EPIC-MGN-019 |
| **Nombre** | Apps Moviles por Perfil de Usuario |
| **Modulo** | mobile |
| **Fase** | Fase 5 - Mobile Platform |
| **Prioridad** | P1 |
| **Estado** | Backlog |
| **Story Points** | 89 |
| **Sprint(s)** | Sprint 29-36 |

---

## Descripcion

Desarrollo de apps moviles React Native para diferentes perfiles de usuario en cada vertical. Incluye funcionalidades biometricas (reconocimiento facial, huella), modo offline, y sincronizacion con backend.

---

## Objetivo de Negocio

- Digitalizar operaciones en campo
- Capturar datos en tiempo real
- Validar asistencia con biometricos
- Aumentar productividad de usuarios moviles

---

## Apps por Vertical

### Construccion (3 apps)

| App | Perfiles | SP | Descripcion |
|-----|----------|-----|-------------|
| App Encargado de Obra | Residente, Supervisor | 21 | Check in/out, avances, fotos, materiales |
| App Almacen | Almacenista | 13 | Entradas, salidas, inventario |
| App Derechohabiente | Cliente final | 13 | Estado vivienda, citas, documentos |

### Vidrio Templado (2 apps)

| App | Perfiles | SP | Descripcion |
|-----|----------|-----|-------------|
| App Produccion | Operador | 13 | Ordenes, calidad, escaneo |
| App Instalador | Instalador | 8 | Asignaciones, fotos, firmas |

### Mecanicas Diesel (1 app)

| App | Perfiles | SP | Descripcion |
|-----|----------|-----|-------------|
| App Tecnico | Mecanico | 13 | Ordenes servicio, diagnosticos |

### Retail (1 app)

| App | Perfiles | SP | Descripcion |
|-----|----------|-----|-------------|
| App Vendedor | Vendedor | 8 | POS movil, inventario |

---

## Historias de Usuario - Core (Todas las apps)

| ID | Historia | Prioridad | SP | Estado |
|----|----------|-----------|-----|--------|
| US-MGN019-001 | Como usuario, quiero hacer login con mi cuenta ERP | P0 | 3 | Backlog |
| US-MGN019-002 | Como usuario, quiero hacer check-in con reconocimiento facial | P0 | 8 | Backlog |
| US-MGN019-003 | Como usuario, quiero hacer check-in con huella | P1 | 5 | Backlog |
| US-MGN019-004 | Como usuario, quiero tomar fotos geolocalizadas | P0 | 5 | Backlog |
| US-MGN019-005 | Como usuario, quiero trabajar sin internet | P0 | 8 | Backlog |
| US-MGN019-006 | Como usuario, quiero sincronizar datos cuando tenga conexion | P0 | 5 | Backlog |
| US-MGN019-007 | Como usuario, quiero recibir notificaciones push | P1 | 3 | Backlog |

**Total Story Points Core:** 37 SP

---

## Criterios de Aceptacion

**Funcionales:**
- [ ] Login con credenciales ERP
- [ ] Reconocimiento facial con liveness detection
- [ ] Huella dactilar nativa del dispositivo
- [ ] Captura de fotos con GPS embebido
- [ ] Almacenamiento offline de datos pendientes
- [ ] Sincronizacion automatica al recuperar conexion
- [ ] Resolucion de conflictos en sincronizacion
- [ ] Notificaciones push via Firebase

**No Funcionales:**
- [ ] Soporte Android 9+ e iOS 14+
- [ ] Tiempo de login < 3 segundos
- [ ] Reconocimiento facial < 2 segundos
- [ ] Sincronizacion en background
- [ ] Tamaño de app < 50MB

---

## Arquitectura Tecnica

### Stack

- **Framework:** React Native 0.73+
- **Estado:** Zustand + React Query
- **Storage:** WatermelonDB (SQLite)
- **Auth:** JWT + Biometrics
- **Camera:** react-native-camera
- **Facial:** AWS Rekognition / Azure Face
- **Push:** Firebase Cloud Messaging

### Monorepo Structure

```
apps/mobile/
├── packages/
│   ├── core/           # Auth, API, Storage
│   ├── biometrics/     # Facial, Fingerprint
│   ├── camera/         # Photo capture
│   ├── sync/           # Offline sync
│   └── ui/             # Shared components
├── apps/
│   ├── construccion-encargado/
│   ├── construccion-almacen/
│   ├── construccion-cliente/
│   ├── vidrio-produccion/
│   ├── vidrio-instalador/
│   ├── mecanicas-tecnico/
│   └── retail-vendedor/
└── package.json
```

---

## Dependencias

**Depende de:**
- EPIC-MGN-001 Auth (autenticacion)
- APIs de cada vertical

**Bloquea:**
- Ninguna

---

## Roadmap de Apps

| Fase | Apps | Sprint |
|------|------|--------|
| 1 | Core packages + App Encargado Obra | 29-32 |
| 2 | App Almacen + App Derechohabiente | 33-34 |
| 3 | App Produccion + App Tecnico | 35-36 |
| 4 | Otras apps | 37+ |

---

**Creado por:** Requirements-Analyst
**Fecha:** 2025-12-05
