mirror of
https://github.com/marcogll/gloria_app.git
synced 2026-03-15 14:24:44 +00:00
3.1 KiB
3.1 KiB
Product Requirements Document (PRD) – Plataforma Gloria
Versión: 2.0 Fecha: 29 de Enero, 2026 Stack: Next.js 14, Prisma, SQLite, Redis, Evolution API
1. Visión del Producto
Transformar la presencia digital de Gloria Niño en una herramienta operativa que centralice la atención, gestione crisis y automatice el agendamiento, manteniendo una estética de alta gama, calidez y profesionalismo.
2. Mapa del Sitio (Basado en Mockup)
2.1 Landing Page (Home)
Header
- Logo: GW
- Menú: Inicio, Sobre mí, Servicios, Testimonios, Contacto
- CTA: Agendar Ahora
Hero Section
- Imagen: Fotografía profesional de Gloria Niño
- Titular: Gloria Niño - Terapeuta Emocional
- Subtitular: Enfoque terapéutico personalizado
- Botón principal: Agenda tu Cita (Inicia flujo)
- Botón secundario: Ver Servicios
Sección Biográfica
- Imagen: Gloria Niño en sesión (jardín zen)
- Texto: Biografía breve enfocada en duelo y ansiedad
Servicios (Grid 3)
- Terapia Individual
- Terapia de Pareja
- Talleres / Grupos
Testimonios
- Carrusel con citas, nombres y avatares
Contacto
- Formulario: Nombre, WhatsApp, Mensaje
- Tarjetas: Ubicación y Horarios
Footer
- Redes sociales
- Privacidad
- Copyright
3. Requisitos Funcionales
3.1 Flujo de Agendamiento
Paso 1: Identificación
- Ingreso de WhatsApp
- Búsqueda en SQLite
- Cliente existente: mensaje personalizado + botones
- Nuevo cliente: registro (Nombre, Edad, Motivo)
Paso 2: Filtro de Crisis
- Pregunta: ¿Es una urgencia?
- Si: protocolo de crisis
- No: calendario
Paso 3: Disponibilidad
- Integración Google Calendar
- Caché Redis
Paso 4: Pago
- Carga de comprobante
3.2 Dashboard de Administración
Rol: Asistente
- Agenda general
- Validación de pagos
- Lista de pacientes
- Sin acceso a notas clínicas
Rol: Terapeuta (Gloria)
- Expediente completo
- Notas clínicas enriquecidas
- Módulo de voz
- Envío vía WhatsApp
- Auto-eliminación (7 días)
4. Requisitos de Datos (Prisma)
model Patient {
phone String @id
name String
birthdate DateTime
status String
createdAt DateTime @default(now())
}
model Appointment {
id Int @id @default(autoincrement())
date DateTime
status String
isCrisis Boolean
paymentProofUrl String?
}
model ClinicalNote {
id Int @id @default(autoincrement())
patientId String
content String
createdAt DateTime @default(now())
}
model VoiceNote {
id Int @id @default(autoincrement())
filename String
duration Int
sentAt DateTime
expiresAt DateTime
}
5. Requisitos No Funcionales
Hosting
- VPS Hostinger
- Docker Compose
Optimización
- Redis (sesiones y caché)
Privacidad
- Cookies banner
- Aceptación T&C
- Página estática
Manejo de Archivos
- Comprobantes: volumen local
- Audios: temporales
6. Casos Borde
- Citas para terceros
- Cancelaciones tardías
- Zonas horarias