# 📋 PRD - Rutas de Solidaridad
## Sistema de Gestión de Ayuda Humanitaria

### 📌 VISIÓN GENERAL DEL PROYECTO

**Nombre del Proyecto:** Rutas de Solidaridad

**Propósito:** Sistema web para gestionar la distribución de ayuda humanitaria a familias afectadas por el terremoto en La Guaira, Venezuela.

**Contexto:** 
- Terremoto doble el 24 de junio en Venezuela
- Principal afectación: estado La Guaira
- Familias aisladas y desplazadas sin acceso a ayuda
- Voluntarios organizándose para cubrir necesidades básicas
- Situación de emergencia que no se resolverá en una semana

**Objetivo Principal:** Optimizar la gestión de donaciones, inventario y distribución de ayuda, garantizando que llegue a las familias más necesitadas con seguimiento periódico.

**Usuarios del Sistema:**
1. **Administradores** - Control total del sistema
2. **Voluntarios** - Registran donaciones, gestionan inventario, entregan ayuda
3. **Afectados** - Se registran para recibir ayuda
4. **Donantes** - Registran donaciones (pueden ser anónimos)

---

### 🎯 ALCANCE DEL PROYECTO

**Dentro del Alcance:**
✅ Registro de afectados con geolocalización
✅ Sistema de inventario en tiempo real
✅ Gestión de donaciones (dinero e insumos)
✅ Asignación de voluntarios
✅ Seguimiento de entregas
✅ Mapa de necesidades
✅ Dashboard con KPIs
✅ Alertas de stock bajo
✅ PWA para funcionamiento offline
✅ Reportes y exportación de datos

**Fuera del Alcance (Fase 1):**
❌ Aplicación móvil nativa (será PWA)
❌ Sistema de pagos en línea
❌ Chat en tiempo real (futura fase)
❌ Inteligencia artificial avanzada

---

### 🏗️ ARQUITECTURA TÉCNICA

**Frontend:**
- Framework: React + Vite
- Estilos: Tailwind CSS
- PWA: Workbox
- Mapas: Leaflet / Google Maps API

**Backend:**
- Supabase (PostgreSQL)
- Auth: Supabase Auth
- APIs: RESTful de Supabase

**Base de Datos:**
- PostgreSQL (Supabase)
- RLS (Row Level Security) para protección de datos

**Despliegue:**
- Hosting: cPanel
- Dominio: voluntariado.foresve.com
- FTP para despliegue

---

### 📱 FUNCIONALIDADES DETALLADAS

#### 1. SISTEMA DE AUTENTICACIÓN

**1.1 Registro de Voluntarios**
- Formulario con: nombre, email, teléfono, cédula, zona operativa
- Verificación por email
- Roles: admin, voluntario

**1.2 Login**
- Email + contraseña
- Recuperación de contraseña
- Sesión persistente

**1.3 Perfil de Voluntario**
- Ver y editar datos personales
- Ver historial de asignaciones
- Cambiar disponibilidad

---

#### 2. REGISTRO DE AFECTADOS

**2.1 Formulario Público**
- Link público para autoregistro
- Campos:
  - Datos personales: nombre, cédula, teléfono
  - Dirección actual (geolocalización automática)
  - Número de integrantes: adultos, niños, mayores
  - Necesidades urgentes (múltiple selección)
  - Prioridad automática (según necesidades)
- QR para seguimiento

**2.2 Listado de Afectados**
- Tabla con todos los registros
- Filtros: por prioridad, zona, estado
- Búsqueda por nombre o cédula
- Exportar a Excel/CSV

**2.3 Seguimiento Individual**
- Historial de seguimiento
- Última entrega realizada
- Próximo seguimiento programado
- Notas y observaciones

---

#### 3. GESTIÓN DE DONACIONES

**3.1 Registrar Donación**
- Tipo: Dinero / Insumos
- Datos del donante (opcional)
- Descripción del insumo
- Cantidad y unidad de medida
- Ubicación (centro de acopio)
- Foto del producto (opcional)
- Estado: Pendiente / En tránsito / Entregado

**3.2 Listado de Donaciones**
- Ver todas las donaciones
- Filtrar por tipo, estado, fecha
- Buscar por donante o descripción
- Marcar como recibido/entregado

**3.3 Donaciones Anónimas**
- Permitir donaciones sin identificar donante
- Solo registrar insumos

---

#### 4. SISTEMA DE INVENTARIO ⭐

**4.1 Dashboard de Inventario**
- Vista general por categorías
- Total de productos disponibles
- Alertas de stock bajo y crítico
- Gráficos de tendencias

**4.2 Gestión de Productos**
- CRUD de productos: nombre, categoría, unidad
- Stock mínimo y crítico por producto
- Activar/desactivar productos

**4.3 Movimientos de Inventario**
- Ingreso (donaciones)
- Salida (entregas a afectados)
- Traslados (entre centros de acopio)
- Ajustes (por mermas/sobrantes)
- Cada movimiento registra: producto, cantidad, ubicación, fecha, responsable

**4.4 Control de Lotes**
- Número de lote por producto
- Fecha de vencimiento
- Alertas de productos próximos a vencer

**4.5 Inventario por Ubicación**
- Centro de Acopio 1 - Catia La Mar
- Centro de Acopio 2 - Caraballeda
- Centro de Acopio 3 - Maiquetía
- Ver stock en cada ubicación

**4.6 Alertas Automáticas**
- Stock Bajo: cuando cantidad < stock_minimo
- Stock Crítico: cuando cantidad < stock_critico
- Vencimiento: 30 días antes de fecha de vencimiento
- Notificaciones en el dashboard

---

#### 5. ASIGNACIÓN DE AYUDA

**5.1 Asignar Ayuda**
- Seleccionar afectado (ver prioridad)
- Ver necesidades del afectado
- Seleccionar productos del inventario disponible
- Asignar voluntario responsable
- Programar fecha de entrega

**5.2 Verificación de Disponibilidad**
- Consulta automática de inventario
- Si no hay stock, sugerir alternativas
- Registrar como pendiente si no hay insumos

**5.3 Seguimiento de Entregas**
- Estado: Asignado → En Ruta → Entregado
- Marcar entregas con foto (opcional)
- Registro de entrega con firma digital

---

#### 6. GESTIÓN DE VOLUNTARIOS

**6.1 Registro de Voluntarios**
- Formulario completo
- Verificación de identidad
- Área de operación preferida
- Disponibilidad horaria
- Vehículo propio (sí/no)

**6.2 Asignación de Rutas**
- Asignar zonas a voluntarios
- Ver mapa con rutas sugeridas
- Optimización de entregas

**6.3 Dashboard de Voluntarios**
- Ver voluntarios activos
- Total de entregas realizadas
- Zonas cubiertas

---

#### 7. MAPA Y GEOLOCALIZACIÓN 🗺️

**7.1 Mapa de Necesidades**
- Ver todos los afectados en mapa
- Marcadores según prioridad (rojo, amarillo, verde)
- Click en marcador para ver detalles

**7.2 Mapa de Inventario**
- Ver centros de acopio
- Stock disponible en cada ubicación
- Niveles de abastecimiento

**7.3 Rutas de Entregas**
- Planificar rutas para voluntarios
- Orden óptimo de entregas
- Distancias y tiempos estimados

**7.4 Geolocalización Automática**
- Al registrar afectado: capturar ubicación automática
- Al registrar donación: ubicación del centro de acopio

---

#### 8. REPORTES Y ANALYTICS 📊

**8.1 Dashboard Principal**
- KPIs en tiempo real:
  - Total de afectados registrados
  - Total de donaciones recibidas
  - Total de entregas realizadas
  - Voluntarios activos
  - Stock por categoría

**8.2 Reportes**
- Reporte de afectados por zona
- Reporte de donaciones por tipo
- Reporte de inventario
- Reporte de entregas
- Exportar a PDF y Excel

**8.3 Estadísticas**
- Necesidades más comunes
- Productos más demandados
- Tiempo promedio de entrega
- Zonas con mayor necesidad

---

#### 9. SEGUIMIENTO DE AFECTADOS

**9.1 Historial de Seguimiento**
- Registro de llamadas
- Visitas realizadas
- Entregas recibidas
- Actualizaciones de estado

**9.2 Programación de Seguimiento**
- Configurar próxima visita
- Recordatorios automáticos
- Notificar al voluntario asignado

**9.3 Estado del Afectado**
- Activo: recibe seguimiento
- Atendido: ya recibió ayuda suficiente
- Desplazado: cambió de ubicación

---

#### 10. PWA Y OFFLINE MODE 📱

**10.1 Configuración PWA**
- Instalable en dispositivos móviles
- Icono y splash screen personalizados
- Funcionamiento offline

**10.2 Sincronización Offline**
- Registrar afectados sin internet
- Registrar donaciones offline
- Sincronizar cuando haya conexión
- Cache de datos críticos

**10.3 Notificaciones Push**
- Alertas de nuevas donaciones
- Recordatorios de entregas
- Cambios de estado en asignaciones

---

#### 11. ADMINISTRACIÓN

**11.1 Gestión de Usuarios**
- Crear/editar/eliminar voluntarios
- Asignar roles (admin, voluntario)
- Activar/desactivar usuarios

**11.2 Configuración**
- Centros de acopio (CRUD)
- Categorías de productos (CRUD)
- Parámetros del sistema

**11.3 Logs y Auditoría**
- Registro de todas las acciones
- Historial de cambios en inventario
- Trazabilidad de entregas

---

### 🗄️ ESTRUCTURA DE BASE DE DATOS

**Tablas Principales:**
1. `voluntarios` - Datos de voluntarios
2. `afectados` - Datos de afectados
3. `donaciones` - Registro de donaciones
4. `productos` - Catálogo de productos
5. `inventario_ubicacion` - Stock por ubicación
6. `movimientos_inventario` - Historial de movimientos
7. `asignaciones` - Asignación de ayudas
8. `alertas_inventario` - Alertas automáticas
9. `seguimiento_afectados` - Historial de seguimiento
10. `ubicaciones` - Centros de acopio
11. `categorias_productos` - Categorías

**Relaciones Clave:**
- `donaciones` → `movimientos_inventario` (ingreso)
- `asignaciones` → `movimientos_inventario` (salida)
- `asignaciones` → `voluntarios` y `afectados`
- `afectados` → `seguimiento_afectados`

---

### 📱 INTERFACES DE USUARIO

#### Pantallas Principales (Mockups en texto)

**1. Dashboard**
┌─────────────────────────────────────────────┐
│ 🆘 RUTAS DE SOLIDARIDAD - DASHBOARD         │
├─────────────────────────────────────────────┤
│ 📊 ESTADÍSTICAS                             │
│ 156        48        23        89           │
│ Fam        Don       Vol       Pend         │
│                                             │
│ 📍 MAPA DE NECESIDADES                      │
│ [Google Maps con marcadores]                │
│                                             │
│ ⚠️ ALERTAS                                  │
│ • Stock crítico: Leche (12l)               │
│ • 5 familias sin agua - Catia La Mar        │
├─────────────────────────────────────────────┤
│ [Dashboard] [Donaciones] [Inventario]       │
│ [Afectados] [Voluntarios] [Reportes]        │
└─────────────────────────────────────────────┘

**2. Registro de Afectado**
┌─────────────────────────────────────────────┐
│ 👨‍👩‍👧‍👦 REGISTRAR AFECTADO                    │
├─────────────────────────────────────────────┤
│ Nombre: [                                   ]│
│ Cédula: [                                   ]│
│ Teléfono: [______________                   ]│
│ 📍 [GEOLOCALIZACIÓN AUTOMÁTICA              ]│
│                                             │
│ Integrantes:                                │
│ Adultos:[] Niños:[] Mayores:[]              │
│                                             │
│ Necesidades:                                │
│ ☑ Agua ☑ Alimentos ☐ Medicinas             │
│ ☐ Ropa ☐ Pañales ☐ Otros                   │
│                                             │
│ Prioridad: [🔴 Alta]                       │
│                                             │
│ [REGISTRAR AFECTADO]                        │
└─────────────────────────────────────────────┘

**3. Inventario**
┌─────────────────────────────────────────────┐
│ 📦 INVENTARIO EN TIEMPO REAL                │
├─────────────────────────────────────────────┤
│ 🥫 1,450   💧 2,800   💊 340   👕 890      │
│ Alim       Agua       Med      Ropa         │
│                                             │
│ CATEGORÍAS: [Todo] [Alimentos] [Agua]       │
│                                             │
│ Arroz ████████████░░ 850kg [85%] 🟢         │
│ Agua  ██████████░░░░ 800l  [60%] 🟡         │
│ Leche ██░░░░░░░░░░░░  12l  [10%] 🔴         │
│                                             │
│ [REGISTRAR MOVIMIENTO] [VER ALERTAS]        │
└─────────────────────────────────────────────┘

**4. Asignación de Ayuda**
┌─────────────────────────────────────────────┐
│ 📋 ASIGNAR AYUDA                            │
├─────────────────────────────────────────────┤
│ AFECTADO: María Rodríguez                   │
│ Prioridad: 🔴 Alta                         │
│ Familia: 4 integrantes                      │
│                                             │
│ DONACIONES DISPONIBLES:                     │
│ 🥫 20kg Arroz - Centro 1                   │
│ 💧 10l Agua - Centro 2                     │
│                                             │
│ VOLUNTARIO: [Juan Pérez ▼]                  │
│                                             │
│ [ASIGNAR AYUDA] [VER RUTA]                  │
└─────────────────────────────────────────────┘

---

### 🔄 FLUJOS DE TRABAJO PRINCIPALES

#### Flujo 1: Donación → Inventario → Entrega
DONACIÓN → INVENTARIO → ASIGNACIÓN → ENTREGA → SEGUIMIENTO
   ↓          ↓             ↓          ↓           ↓
 Donante    Stock+     Afectado    Voluntario   Historial
            Alerta     Selección   Entrega      Actualización

#### Flujo 2: Registro de Afectado
LINK PÚBLICO → FORMULARIO → GEOLOCALIZACIÓN → PRIORIDAD → BASE DE DATOS

#### Flujo 3: Seguimiento
ASIGNACIÓN → VOLUNTARIO → ENTREGA → FOTO → ACTUALIZAR ESTADO → PRÓXIMO SEGUIMIENTO

---

### 🔐 SEGURIDAD Y PRIVACIDAD

**1. Protección de Datos**
- RLS en todas las tablas
- Datos sensibles encriptados
- Solo voluntarios autenticados ven datos completos

**2. Roles y Permisos**
- Admin: Acceso total
- Voluntario: Ver afectados, gestionar inventario, registrar entregas
- Público: Solo registrarse como afectado o donante

**3. Auditoría**
- Log de todas las acciones
- Trazabilidad de cambios en inventario
- Registro de accesos al sistema

---

### 📊 MÉTRICAS DE ÉXITO

**KPIs Principales:**
1. Tiempo promedio de respuesta a solicitudes
2. % de familias atendidas vs registradas
3. Eficiencia en distribución de insumos
4. Satisfacción de voluntarios y afectados
5. Reducción de desperdicio de donaciones

---

### 🚀 FASES DE IMPLEMENTACIÓN

**Fase 1 - Emergencia (Semana 1)**
- Registro de afectados
- Dashboard básico
- Inventario simple

**Fase 2 - Operativa (Semana 2-3)**
- Sistema completo de donaciones
- Gestión de voluntarios
- Asignación de ayudas
- Mapa de necesidades

**Fase 3 - Optimización (Semana 4)**
- PWA offline
- Reportes avanzados
- Notificaciones push
- Análisis de datos

---

### 📝 REQUISITOS NO FUNCIONALES

**Rendimiento:**
- Carga inicial < 3 segundos
- Soporte para 100+ usuarios concurrentes
- Sincronización offline en < 5 segundos

**Disponibilidad:**
- 99.9% de uptime
- Modo offline para áreas sin internet

**Usabilidad:**
- Interfaz intuitiva para personas no técnicas
- Diseño responsive (móvil, tablet, desktop)
- Tamaño de fuente legible
- Contraste adecuado para accesibilidad

**Mantenibilidad:**
- Código modular y documentado
- Variables de entorno para configuración
- Logs para debugging

**Escalabilidad:**
- Preparado para crecer a otros estados
- Soporte para más centros de acopio
- API para futuras integraciones

---

### 📚 DOCUMENTACIÓN REQUERIDA

1. **Manual de Usuario** - Para voluntarios y administradores
2. **Manual Técnico** - Para desarrolladores futuros
3. **Guía de Despliegue** - Cómo instalar en otro servidor
4. **Diccionario de Datos** - Estructura de la base de datos

---

### 🛠️ TECNOLOGÍAS Y HERRAMIENTAS

**Frontend:**
- React 18+
- Vite 4+
- Tailwind CSS 3+
- React Router 6+
- Leaflet / Google Maps

**Backend:**
- Supabase (PostgreSQL)
- Supabase Auth

**DevOps:**
- cPanel + FTP
- Git (opcional)

**Testing:**
- Jest + React Testing Library

---

### 📋 CHECKLIST DE ENTREGA

- [ ] Registro de afectados funcionando
- [ ] Inventario en tiempo real
- [ ] Gestión de donaciones
- [ ] Asignación de ayudas
- [ ] Mapa de necesidades
- [ ] Dashboard con KPIs
- [ ] PWA instalable
- [ ] Modo offline
- [ ] Reportes exportables
- [ ] Manual de usuario

---

### 📞 CONTACTOS Y ROLES

**Equipo del Proyecto:**
- Product Owner: [Nombre]
- Desarrollador Principal: [Nombre]
- Voluntarios: [Equipo]

**Stakeholders:**
- Organización: Foresve
- Comunidades: La Guaira, Caraballeda, Catia La Mar, Maiquetía

---

**Versión del Documento:** 1.0
**Fecha de Creación:** 26/06/2024
**Última Actualización:** 30/06/2024
**Autor:** Equipo Rutas de Solidaridad
