Commit Graph

10 Commits

Author SHA1 Message Date
Milton Gonzalez 91e15e8318 feat: version 4.8.0 -- Agenda medica en vista de calendario (mes y semana)
Vista Mes tipo calendario (componente reutilizable MonthGrid) y vista Semana con
las citas de todos los medicos filtrados, coloreadas por medico; leyenda de
colores y vista elegida persistida.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 13:34:23 -05:00
Milton Gonzalez 1e25022630 feat: version 4.7.0 -- Agenda medica
Modulo clinic (habilitado por usuario): citas de pacientes para medicos con choques
bloqueantes (medico, paciente con cualquier medico, quirofano/bloqueos recurrentes y
horario de atencion), validados en transaccion con bloqueo de filas para que dos
recepcionistas no tomen el mismo hueco. Recepcion (alcance todos) y medico (alcance
propio). Vista Dia por columnas de medico, Semana y Lista; pacientes con historial;
bloqueos; configuracion de personal, horarios y tipos solo admin/superadmin. Capa de
citas en el calendario personal del medico. Migracion 036.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 12:57:43 -05:00
Milton Gonzalez 959c365d5c fix: version 3.0.1 -- Actualizador espera a backend y frontend antes de recargar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:59:48 -05:00
Milton Gonzalez e65111a7f4 feat: version 3.0.0 -- Correcciones de auditoria de seguridad, accesibilidad y redundancia
Permisos (superadmin, viewer, busqueda, tareas recurrentes), bootstrap atomico,
revocacion de JWT por version de sesion (028), control optimista de edicion (029),
logo sin SVG + CSP, ingesta endurecida, correos escapados, borradores, paginacion
de proyectos, accesibilidad de dialogos/controles e i18n.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:36:02 -05:00
Milton Gonzalez dd8384fc88 feat: version 2.9.1 -- resaltado de sintaxis en bloques de codigo de documentos .md
Los bloques de codigo dentro de un .md visto en Documentos ahora tienen colores de token
(highlight.js + marked-highlight), con el tema "Visual Studio" claro/oscuro para que se vea
parecido a VSCode y se adapte solo al tema de la app. Se usa highlight.js/lib/core y solo se
registran los lenguajes esperados en este proyecto (js/ts, bash, json, python, sql, yaml,
html/xml, css, ini, dockerfile, markdown) para no inflar el bundle con el paquete completo.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-07 17:38:46 -05:00
Milton Gonzalez 3d220bcc20 feat: version 2.9.0 -- ver documentos .md/.txt directo, sin descargar
Agrega un boton "Ver" en Documentos (adjuntos de proyectos/actividades) para archivos de
texto plano y Markdown: se leen via blob (mismo mecanismo ya usado para descargar, que ya
maneja el Bearer token) y se muestran en un popup -- el .md se renderiza con formato (marked)
y se sanitiza con DOMPurify antes de insertarse en el DOM, para no abrir una via de XSS con
HTML/JS embebido en un documento subido por otro usuario.

De paso corrige que subir un .md fallaba con "tipo de archivo no permitido": el navegador no
manda un mimetype confiable para esa extension (varia segun SO), asi que ahora se normaliza
por extension en el fileFilter de multer en vez de depender solo del mimetype del navegador.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-07 17:17:03 -05:00
Milton Gonzalez 8214df62ae feat: version 2.8.1 -- catalogo de logos de marca en Contraseñas (simple-icons, CC0)
Amplia el selector de icono de una credencial con ~70 logos reales de marcas conocidas
(Google, GitHub, Cloudflare, cPanel, MikroTik, WordPress, etc.), empaquetados localmente
desde el paquete simple-icons (dominio publico) y tree-shakeados por Vite. Se mantiene el
criterio de privacidad ya establecido: ninguna consulta externa de favicon por entrada.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-01 14:16:31 -05:00
Milton Gonzalez 08e6db0b6f feat: app instalable desde el navegador (PWA)
vite-plugin-pwa genera manifest.webmanifest + service worker en el build. Iconos nuevos
generados a partir del logo actual (192, 512, maskable para Android). El service worker
precachea solo assets estaticos (JS/CSS/iconos) -- /api nunca se cachea, siempre va a la red, asi
los datos no quedan desactualizados. Se actualiza solo (autoUpdate) sin pedirle nada al usuario.

Probado: build genera sw.js/manifest correctamente, el service worker registra y activa en un
browser real, y la app (login, listado de proyectos, llamadas a /api) sigue funcionando igual
que antes -- sin regresiones.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 15:25:04 -05:00
Milton Gonzalez c7b270e6ea chore: prepara el proyecto para el primer deploy a produccion
- seed-db.js: los datos de ejemplo (departamentos TI/Finanzas/RRHH/Comercial +
  usuario admin con clave=usuario) solo se cargan si NODE_ENV != production.
  En produccion el seed solo carga catalogos (roles, prioridades, estados,
  tipos de proyecto) — la organizacion real la crea el admin desde la UI.
- Nuevo backend/src/scripts/create-admin.js: crea el usuario Administrador
  inicial de produccion con una clave fuerte generada al azar (nunca
  clave=usuario, esa convencion es solo para dev).
- frontend: agrega "serve" como dependencia de produccion (arquetipo B: el
  frontend corre como proceso separado sirviendo el build con
  `serve -s dist`).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-05 22:38:01 -05:00
Milton Gonzalez 1d22adc42e chore: estructura inicial del MVP
Backend (Express + MariaDB) y frontend (React + Vite, identidad Fluent/Windows) con el
nucleo funcional: seguridad, organizacion, proyectos, actividades, subtareas, dependencias,
dashboard, calendario, gantt, comentarios, adjuntos, notificaciones in-app y catalogos.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-03 08:37:58 -05:00