00-paper-reference.md
Abrir documentoReferencia Paper — MERIDIANA
| Campo | Valor |
|---|---|
| File ID | 01KZ0MMJAEMKXKNX2RDKPBKBXW |
| URL | https://app.paper.design/file/01KZ0MMJAEMKXKNX2RDKPBKBXW |
| Nombre | MERIDIANA — Daily UX 2026-08-02 |
| Fecha | 2026-08-02 |
| Estado | Nivel 1 — 19 artboards (13 UI + 6 UX process) + 5 etiquetas §N |
Mapa del canvas (CRON §5.2)
| § | Banda | Contenido |
|---|---|---|
| 1 | UX PROCESS | UX-00…UX-05 |
| 2 | DESIGN SYSTEM + DESKTOP | 00 DS · Home · Servicios · Equipo · Cita · Confirmación |
| 3 | MOBILE | Home · Cita · Validación |
| 4 | RECEPTION | Bandeja solicitudes |
| 5 | SYSTEM STATES | Empty · Loading · Error red |
Media real
assets/clinic/hero.jpg + assets/doctors/*.jpg vía paper-asset://
01-project-definition.md
Abrir documento01 — Definición de producto — MERIDIANA
5.1 Identidad
| Campo | Valor |
|---|---|
| Nombre | MERIDIANA |
| Significado | Meridiana: línea de orientación y luz al mediodía; evoca “encontrar el norte” en la salud de barrio y un eje claro (cita, equipo, cuidado). |
| Eslogan | “Tu salud de barrio, con hora y con calma.” |
| Una frase | Web del centro de atención primaria MERIDIANA para conocer servicios y equipo y solicitar cita sin colas telefónicas. |
| Descripción ejecutiva | MERIDIANA es la puerta digital de un centro de medicina de familia y pediatría de barrio en España. Reduce la fricción del primer contacto (información confiable + solicitud de cita) y da a recepción un listado ordenado de peticiones. Nivel 1: sin historia clínica electrónica, sin teleconsulta en v1, sin pasarela de pago. |
| Sector | Salud — atención primaria / clínicas de barrio |
| Tipo | Web corporativa + lead/solicitud de cita |
| Plataforma principal | Web responsive (desktop + mobile) |
| Secundarias | Enlace compartible por WhatsApp del centro (futuro) |
| Mercado | España (comunidad autónoma genérica de demo) |
| Idioma UI | Español (es-ES) |
| Otros idiomas | Catalán/euskera/gallego fuera de alcance v1 |
5.2 Problema
Problema principal
Las personas del barrio no encuentran horarios, especialidades y forma de pedir cita de forma clara; el teléfono satura recepción y se pierden solicitudes.
Problemas secundarios
- Información desactualizada en carteles o redes.
- Desconocimiento del equipo médico (confianza).
- Dificultad para elegir motivo de consulta (orientación).
- Recepción sin cola digital de peticiones.
Quién lo experimenta
Pacientes y cuidadoras; recepción administrativa; médicos de familia (indirecto: menos llamadas mal encaminadas).
Cómo se resuelve hoy (suposición de mercado, no estudio de campo propio)
Teléfono en horario limitado, WhatsApp informal, desplazamiento al mostrador.
Deficiencias
Horario de llamada estrecho, sin rastro escrito de la petición, fricción para personas con poca disponibilidad laboral diurna.
Coste (hipótesis)
Horas de recepción en llamadas no resueltas; pacientes que posponen cuidados no urgentes; mala experiencia percibida del centro.
Oportunidad
Web de confianza + formulario de solicitud + bandeja para recepción = vertical slice útil sin EHR completo.
Tipos de afirmación
| Tipo | Ejemplos en este case |
|---|---|
| Comprobada | Stack y entregables del repositorio; limitaciones de Paper MCP documentadas en memory |
| Suposición | Saturación telefónica típica en AP; preferencia mobile de cuidadores |
| Hipótesis | Solicitud web reduce llamadas de “solo información” ≥ 20% en 90 días |
| Decisión de diseño | Sin login de paciente en v1; solicitud con datos de contacto; recepción sin JWT (panel simple, endurecer en L2+) |
5.3 Objetivos
| Capa | Objetivos |
|---|---|
| Negocio | Aumentar citas capturadas por canal digital; bajar carga telefónica informativa |
| Usuario | Entender el centro, confiar en el equipo, pedir cita en < 3 min |
| Producto | Home + servicios + equipo + solicitud + confirmación + bandeja recepción |
| Experiencia | Calma, claridad, lenguaje llano, contraste AA |
| Técnicos | API Nest + Angular + Neon; seed realista; estados de error |
| No objetivos | HCE, receta electrónica, facturación, teleconsulta, app nativa, multi-centro tenant |
| Restricciones | Nivel 1 alcance; sin OAuth; datos de salud limitados a motivo textual no clínico estructurado |
| Dependencias | Disponibilidad real de agenda (v1 no sincroniza con HIS) |
| Riesgos | Expectativa de “cita confirmada al instante” vs “solicitud pendiente de confirmación” |
5.4 Métricas
| Métrica | Definición operativa |
|---|---|
| North Star | Solicitudes de cita completadas / semana |
| Activación | % visitantes que abren “Solicitar cita” |
| Conversión | % que envían el formulario con éxito |
| Retención | (L2+) pacientes recurrentes por canal web |
| Finalización | Submit success rate |
| Tiempo tarea | p50 tiempo home → confirmación |
| Abandono | Drop-off en paso de formulario |
| Errores | 4xx/5xx y validación cliente |
| Satisfacción | CSAT post-confirmación (microencuesta L2) |
| Operativo | Tiempo medio recepción NEW → CONTACTED |
| A11y | 0 violaciones críticas axe en journey |
| Rendimiento | LCP home < 2.5s en 4G mid-tier (objetivo) |
Supuestos de diseño documentados
- El centro confirma la cita por teléfono o SMS fuera de producto v1.
- El motivo de consulta es texto libre no estructurado (no codificación CIE).
- Un solo centro (no multi-tenant).
02-ux-research-strategy.md
Abrir documento02 — Investigación UX y estrategia — MERIDIANA
Nota metodológica: No hay estudio de campo propio en esta ejecución. Personas, JTBD y journeys son artefactos de diseño basados en patrones conocidos de AP y decisiones del case, no en entrevistas reales.
Stakeholders
| Stakeholder | Influencia | Interés | Necesidades | Riesgos |
|---|---|---|---|---|
| Dirección del centro | Alta | Alta | Imagen, cumplimiento, menos caos | Sobre-prometer citas |
| Recepción | Media | Muy alta | Cola clara, datos de contacto correctos | Volumen sin proceso |
| Médicos/as de familia | Media | Media | Pacientes bien orientados | Motivos confusos |
| Pacientes adultos | Baja formal | Alta | Claridad, rapidez | Desconfianza digital |
| Cuidadores familiares | Baja | Alta | Pedir cita por otro | Datos de terceros |
| Pediatría (equipo) | Media | Media | Visibilidad de horarios | Alcance v1 limitado |
| Legal / RGPD | Alta | Media | Base legal, minimización | Datos de salud |
| IT / desarrollo | Media | Media | Stack simple L1 | Scope creep a HCE |
Personas (4)
P1 — Elena, 42, cuidadora y trabajadora
- Rol: Paciente/cuidadora que gestiona citas de su madre y las suyas.
- Digital: Media-alta (móvil).
- Motivaciones: Resolver sin perder la mañana al teléfono.
- Frustraciones: “Me ponen en espera y cuelgo en el trabajo.”
- Dispositivos: iPhone, a veces portátil por la noche.
- A11y: Ninguna severa; prefiere textos grandes.
- Cita: “Solo quiero dejar la petición y que me llamen.”
- Escenario: Solicita revisión de tensión para su madre un martes a las 22:10.
P2 — Don Antonio, 71, paciente crónico
- Digital: Baja; le ayuda un hijo a veces.
- Motivaciones: Confiar en “su” médico de siempre.
- Frustraciones: Webs con jerga y botones pequeños.
- A11y: Baja visión leve; necesita contraste y tipografía legible.
- Cita: “Que se entienda, como el folleto del centro.”
- Escenario: Mira el equipo y pide a su hijo que envíe la solicitud.
P3 — Laura, 28, recepción
- Digital: Alta.
- Motivaciones: Menos llamadas de “¿a qué hora abrís?”.
- Frustraciones: Notas en papeles y WhatsApps perdidos.
- Escenario: Por la mañana tria solicitudes NEW y llama para confirmar hueco.
P4 — Dr. Martín, 55, médico de familia
- Motivaciones: Pacientes con motivo claro; menos interrupciones.
- Frustraciones: Citas mal tipificadas.
- Uso del producto: Indirecto (beneficiario del filtrado).
JTBD
- Funcional: Cuando necesito una cita no urgente, quiero enviar una solicitud con mis datos y motivo, para que recepción me contacte sin colas telefónicas.
- Emocional: Cuando estoy preocupado por un familiar, quiero sentir que el centro es cercano y ordenado, para reducir ansiedad.
- Social: Cuando cuido de mis padres, quiero demostrar que gestiono bien su salud, para coordinarme con hermanos.
Barreras: Miedo a “no me harán caso”; duda de si es cita confirmada; barreras de alfabetización digital.
User stories (épicas)
E1 — Información del centro (Must)
- Como visitante, quiero ver horarios y ubicación, para decidir si el centro me sirve.
- Como visitante, quiero ver servicios, para orientarme.
- AC: Home muestra horario, dirección, CTA “Solicitar cita”; servicios listados con descripción breve.
E2 — Equipo (Must)
- Como paciente, quiero ver fotos y roles del equipo, para generar confianza.
- AC: Al menos 4 profesionales seed; foto real; especialidad.
E3 — Solicitud de cita (Must)
- Como paciente/cuidador, quiero enviar nombre, teléfono, email opcional, preferencia de franja y motivo, para ser contactado.
- AC: Validación de teléfono ES; motivo 10–500 chars; mensaje de que no es confirmación inmediata; estados error red y validación.
E4 — Recepción (Must L1 mínimo)
- Como recepción, quiero listar solicitudes y marcar CONTACTED/CLOSED, para no perder peticiones.
- AC: Listado ordenado por fecha; cambio de estado; sin auth compleja en v1 (documentado riesgo; endurecer L2).
Should / Could / Won’t
| Prioridad | Ítem |
|---|---|
| Should | Página Cómo llegar con mapa estático |
| Could | Recordatorio de documentación a traer |
| Won’t v1 | Login paciente, pago, historia clínica, multi-idioma |
Journey — Elena solicita cita para su madre
| Fase | Acción | Pensamiento | Emoción | Touchpoint | Oportunidad |
|---|---|---|---|---|---|
| Descubrimiento | Busca “centro salud meridiana” | “¿Será el de mi barrio?” | Neutra | SEO/Home | Hero claro con barrio |
| Orientación | Lee servicios y equipo | “La Dra. Ruiz suena bien” | Confianza ↑ | Equipo | Fotos reales |
| Intención | Toca Solicitar cita | “¿Me darán hora ya?” | Duda | CTA | Copy de “solicitud” |
| Formulario | Rellena datos | “Pongo el mío de contacto” | Concentrada | Form | Campos mínimos |
| Éxito | Ve confirmación | “Vale, me llamarán” | Alivio | Success | Siguiente paso explícito |
| Operación | Laura llama | “Hueco el jueves” | — | Recepción | Estado CONTACTED |
Service blueprint (simplificado)
| Capa | Elementos |
|---|---|
| Usuario | Navega, envía solicitud, espera llamada |
| Frontstage | Web Angular, formulario, email opcional futuro |
| Backstage | Recepción tria en /recepcion, llama, agenda en sistema externo |
| Soporte | Nest API, Neon, seed médicos/servicios |
| Fallos | Red caída → pantalla error + reintento; validación → inline |
| Recuperación | Recepción marca CLOSED si no contesta 3 intentos (proceso manual) |
03-information-architecture.md
Abrir documento03 — Arquitectura de información — MERIDIANA
Mapa del sitio
/ Home
/servicios Listado de servicios
/equipo Profesionales
/cita Solicitar cita
/cita/enviada Confirmación
/contacto Horario, dirección, teléfono (o ancla en home)
/recepcion Bandeja solicitudes (interno L1)
Navegación
- Principal: Inicio · Servicios · Equipo · Solicitar cita (CTA)
- Secundaria footer: Privacidad (resumen), Contacto
- Contextual: Desde tarjeta de servicio → CTA cita con motivo prefill (nice-to-have; v1 link genérico)
Inventario de contenido
| Contenido | Owner | Prioridad | Frecuencia | Visibilidad |
|---|---|---|---|---|
| Hero y promesa | Dirección | Must | Semestral | Público |
| Horario | Recepción | Must | Mensual | Público |
| Servicios | Dirección clínica | Must | Trimestral | Público |
| Fichas equipo | RRHH/Dirección | Must | Trimestral | Público |
| Textos legales | Legal | Must | Anual | Público |
| Solicitudes | Sistema | Must | Continuo | Solo recepción |
Matriz de permisos L1
| Rol | Ver web | Enviar cita | Ver bandeja | Cambiar estado |
|---|---|---|---|---|
| Anónimo | Sí | Sí | No* | No |
| Recepción | Sí | Sí | Sí | Sí |
* En v1 la ruta /recepcion es accesible sin auth (riesgo aceptado y documentado; L2 = PIN/JWT staff).
04-user-flows.md
Abrir documento04 — Flujos de usuario — MERIDIANA
F1 — Solicitar cita (principal)
- Entrada: CTA global o desde Servicios/Equipo.
- Usuario completa: nombre completo, teléfono, email (opc.), franja preferida (mañana/tarde), profesional preferido (opc. “cualquiera”), motivo.
- Cliente valida; POST
/api/appointments. - Éxito →
/cita/enviadacon referencia id corta. - Error red → pantalla/mensaje con reintento.
- Error validación → inline.
Eventos analíticos (plan): cita_form_view, cita_submit_attempt, cita_submit_success, cita_submit_error.
F2 — Explorar equipo
Home/nav → Equipo → detalle implícito en cards (sin página individual L1).
F3 — Recepción
Abre /recepcion → lista NEW/CONTACTED/CLOSED → cambia estado.
Estados de producto
| Estado | Pantalla |
|---|---|
| Empty servicios | Copy + contacto teléfono |
| Loading listados | Skeletons |
| Error red | Ilustración/mensaje + reintentar |
| Validación form | Campos en error |
| Éxito cita | Confirmación no-cita-inmediata |
| Empty bandeja | “No hay solicitudes nuevas” |
05-data-model.md
Abrir documento05 — Modelo de datos — MERIDIANA
Entidades
Service
- id, slug, name, summary, description, iconKey, sortOrder, active, createdAt, updatedAt
Doctor
- id, slug, fullName, roleTitle, bio, photoUrl, acceptsAppointments, sortOrder, active, createdAt, updatedAt
AppointmentRequest
- id, patientName, phone, email?, preferredSlot (MORNING|AFTERNOON|ANY), preferredDoctorId?, serviceId?, reason, status (NEW|CONTACTED|CLOSED), receptionNotes?, createdAt, updatedAt
Relaciones
- Doctor 1—N AppointmentRequest (preferred, opcional)
- Service 1—N AppointmentRequest (opcional)
Privacidad
- Motivo y datos de contacto = datos personales (y potencialmente de salud). Minimizar retención; acceso recepción solo. Ver
11-privacy-security.md.
ER simplificado
Service ||--o{ AppointmentRequest
Doctor ||--o{ AppointmentRequest 06-tech-stack.md
Abrir documento06 — Stack tecnológico — MERIDIANA
| Capa | Elección | Justificación |
|---|---|---|
| Frontend | Angular + Tailwind | Stack fijo del cron |
| Backend | NestJS | Stack fijo |
| ORM | Prisma | Productividad + migraciones |
| DB | Neon PostgreSQL | Stack fijo + serverless |
| Auth | Ninguna paciente; recepción sin JWT en L1 | Alcance compacto; documentar endurecimiento |
| Diseño | Paper MCP | Hi-fi portfolio |
No se elige otro stack pese a la frase genérica del brief de “no siempre el mismo stack”: en este monorepo manda CRON.md / memory.md.
07-creative-direction.md
Abrir documento07 — Dirección creativa — MERIDIANA
Concepto
“Calma clínica de barrio” — luz de mañana, materiales cálidos, nada de hospital frío ni tech startup neón.
Mood
- Madera clara, lino, cerámica, plantas, bata limpia sin frialdad.
- Fotografía real de profesionales y sala de espera luminosa.
Diferenciación vs recientes
| Proyecto | Estilo | MERIDIANA |
|---|---|---|
| COMAL | Industrial safety orange | No metal/naranja |
| ATRIO | Gallery white × cadmium red | No museo/editorial rojo |
| MERIDIANA | Cream × deep teal × soft clay | Salud humana, cercana |
Tipografía
- Display: Fraunces ya usado — NO. Usar Literata (serif humanista lectura).
- UI: Plus Jakarta Sans (no Karla, no IBM Plex).
Paleta
| Token | Hex | Uso |
|---|---|---|
| bg | #F7F3EC | Fondo crema |
| surface | #FFFFFF | Cards |
| ink | #1C2B2B | Texto |
| ink-muted | #5A6B6B | Secundario |
| primary | #0F6B66 | Teal profundo CTA |
| primary-soft | #E3F2F1 | Chips |
| accent | #C4785A | Clay — acentos suaves |
| border | #E2DBD2 | Bordes |
| danger | #B42318 | Errores |
08-design-system.md
Abrir documento08 — Design system — MERIDIANA
Tokens (CSS vars)
Ver Paper artboard 00 Design System y tailwind.config de la app.
Componentes
- Button primary / secondary / ghost
- Input, Textarea, Select
- Card service, Card doctor
- Badge estado (NEW / CONTACTED / CLOSED)
- Alert error / success / info
- Nav + footer
- Skeleton
Spacing
Base 4; escala 8/12/16/24/32/48/64.
Radius
md 8px, lg 12px, full pills.
Motion
150–200ms ease-out en hover; sin motion esencial para a11y (prefers-reduced-motion).
09-content-guide.md
Abrir documento09 — Guía de contenido — MERIDIANA
Tono
Cercano, claro, adulto, sin infantilizar ni medicalizar en exceso. Tú de usted solo en legales.
Microcopy crítico
- CTA: “Solicitar cita” (no “Reservar” ni “Confirmar hora”).
- Éxito: “Hemos recibido tu solicitud. El equipo de recepción te contactará para confirmar la hora.”
- Error: “No hemos podido enviar la solicitud. Comprueba la conexión e inténtalo de nuevo.”
Evitar
Jerga (HIS, CIE, “slot”); promesas de cita inmediata; stock photos de hospitales fríos.
10-accessibility.md
Abrir documento10 — Accesibilidad — MERIDIANA
Objetivo: WCAG 2.2 AA.
- Contraste texto ink sobre cream ≥ 4.5:1.
- Focus visible en CTAs y campos.
- Labels explícitos en formulario (no solo placeholder).
- Orden de foco lógico; skip link a contenido.
- Imágenes de equipo con alt descriptivo (nombre + rol).
- Errores asociados con
aria-describedby. - Tamaño táctil ≥ 44px en mobile.
11-privacy-security.md
Abrir documento11 — Privacidad y seguridad — MERIDIANA
Datos
Solicitud incluye datos identificativos y motivo de consulta (posible dato de salud). Base legal típica: interés legítimo/ejecución de medidas precontractuales de asistencia — no es dictamen legal.
Medidas L1
- HTTPS en producción.
- Validación servidor.
- No logs de motivo en plain en cliente.
.envno commiteado.- Recepción sin auth = deuda de seguridad explícita para L2 (JWT staff o VPN).
Retención (propuesta)
Solicitudes CLOSED > 24 meses: borrado o anonimización (proceso operativo).
No afirmamos
Cumplimiento RGPD “certificado” ni ENS.
12-analytics.md
Abrir documento12 — Analítica — MERIDIANA
| Evento | Props |
|---|---|
| page_view | path |
| cta_cita_click | source |
| cita_submit_success | preferredSlot |
| cita_submit_error | code |
| recepcion_status_change | from, to |
Sin PII en analytics. Consent banner L2 si se usa third-party.
13-qa-test-plan.md
Abrir documento13 — Plan de pruebas — MERIDIANA
Casos
- Home carga servicios y CTAs.
- Formulario rechaza teléfono inválido.
- Submit OK crea fila NEW en API.
- Confirmación muestra mensaje no-inmediato.
- API caída → UI error + reintento.
- Recepción lista y cambia estado.
- A11y smoke: labels y focus en form.
- Mobile 390px: nav y form usables.
14-dev-handoff.md
Abrir documento14 — Handoff desarrollo — MERIDIANA
Repos
- Case:
ux-projects/2026-08-02-meridiana - App:
meridiana-app(Angular web + Nest api)
API
| Método | Ruta | Uso |
|---|---|---|
| GET | /api/services | Listado |
| GET | /api/doctors | Listado |
| POST | /api/appointments | Crear solicitud |
| GET | /api/appointments | Bandeja |
| PATCH | /api/appointments/:id | Estado |
Tokens
Mapear CSS vars Paper → Tailwind theme.
Assets
assets/doctors/* y hero clínica.
15-roadmap.md
Abrir documento15 — Roadmap — MERIDIANA
| Fase | Alcance |
|---|---|
| v1 (este case) | Web info + solicitud + bandeja sin auth |
| v1.1 | Auth recepción + notificaciones email |
| v2 | Preferencias de médico con agenda real (integración) |
| v3 | Área paciente / historial de solicitudes |
| Fuera | HCE, teleconsulta, receta |
16-interaction-specs.md
Abrir documento16 — Interacciones — MERIDIANA
- CTA sticky mobile “Solicitar cita”.
- Form: disable submit mientras loading; toast no sustituye confirmación de página.
- Recepción: confirmación no necesaria al pasar a CONTACTED; confirm al CLOSED opcional.
- Hover cards elevación sutil 2px; reduced-motion: sin translate.
17-prototype-map.md
Abrir documento17 — Mapa de prototipo
El prototipo interactivo es la app Angular, no Paper (limitación MCP documentada en memory).
Flujo demo: Home → Equipo → Cita → Enviada → Recepción.
18-completeness-audit.md
Abrir documento18 — Auditoría de completitud — MERIDIANA
Fecha: 2026-08-02 | Nivel: 1 | Barra calidad: completa (CRON §6.1)
| # | Entregable | Estado | Evidencia |
|---|---|---|---|
| 1 | Definición producto | ✅ | 01-project-definition.md |
| 2 | UX research / personas / JTBD / journeys | ✅ | 02-ux-research-strategy.md |
| 3 | IA + permisos | ✅ | 03-information-architecture.md |
| 4 | Flujos + estados | ✅ | 04-user-flows.md |
| 5 | Modelo de datos | ✅ | 05-data-model.md |
| 6 | Stack | ✅ | 06-tech-stack.md |
| 7 | Dirección creativa | ✅ | 07-creative-direction.md |
| 8 | Design system | ✅ | 08 + Paper DS + Tailwind |
| 9 | Content guide | ✅ | 09-content-guide.md |
| 10 | A11y | ✅ | 10-accessibility.md |
| 11 | Privacy | ✅ | 11-privacy-security.md |
| 12 | Analytics | ✅ | 12-analytics.md |
| 13 | QA | ✅ | 13-qa-test-plan.md |
| 14 | Handoff | ✅ | 14-dev-handoff.md |
| 15 | Roadmap | ✅ | 15-roadmap.md |
| 16 | Interactions | ✅ | 16-interaction-specs.md |
| 17 | Prototype map | ✅ | 17 (Angular) |
| 18 | Paper hi-fi | ✅ | 00-paper-reference.md |
| 19 | Responsive | ✅ | Paper mobile + desktop + app |
| 20 | Media real | ✅ | assets/ + Paper |
| 21 | Implementación | ✅ | meridiana-app |
| 22 | Neon | ✅ | old-glitter-65201301 |
| 23 | GitHub | ✅ | Criscode2022/meridiana-app |
| 24 | Registry + Excel + memory | ✅ | actualizados al cierre |
| 29 | Autoverificación §29 | ✅ | ver abajo |
§29 checklist
- Distinto de COMAL/ATRIO: sí (salud L1, teal/cream, Literata/Jakarta)
- Problema concreto: sí
- Alcance L1: sí (sin HCE)
- Flujos + estados: sí
- Contenido realista: sí
- Identidad propia: sí
- Componentes reutilizables: sí
- Responsive diseñado: sí
- AA objetivo documentado: sí
- Modelo datos soporta use cases: sí
- Stack justificado (cron fijo): sí
- Privacidad riesgos: sí (recepción sin auth)
- Métricas: sí
- Handoff: sí
- Paper hi-fi real: sí
19-backlog-completo.md
Abrir documento19 — Backlog
Must (v1) — hechos en implementación
- Home, servicios, equipo
- Formulario cita + confirmación
- Estados error/validación/empty
- API + Neon + seed
- Bandeja recepción
Should
- Mapa embebido
- Prefill motivo desde servicio
Could
- Multi-idioma
- SMS confirmación
Won’t now
- HCE / teleconsulta
20-implementation.md
Abrir documento20 — Implementación
Ver README del case y meridiana-app/README.md.
Neon project: old-glitter-65201301.
Stack: Angular + Nest + Prisma + Neon + Tailwind.