app-calendario-farmacia
- Ruta física:
apps\app-calendario-farmacia/ - Tipo:
react - Creado el: 2026-07-11
- Autor: JoelJuana
app-calendario-farmacia
Aplicación web interactiva para la planificación de turnos de personal, control de guardias y gestión del calendario de trabajo en oficinas de farmacia.
Características y Funcionalidades
- Gestión de Turnos Visual: Calendario interactivo con codificación por colores para una fácil lectura de las asignaciones de mañana, tarde y guardias nocturnas.
- Control de Restricciones: Reglas automáticas para evitar asignaciones conflictivas y asegurar que se cumplan las horas de descanso normativas del personal.
- Control de Guardias: Planificación específica de las guardias oficiales asignadas a la farmacia en el calendario de turnos anual.
- Timeline Diario (Gantt): Vista gráfica hora a hora de la ocupación de cada empleada para control de cobertura.
- Bolsa de Horas: Dashboard con el saldo acumulado de horas a favor/en contra por empleada con historial de movimientos.
- Panel de Estadísticas: KPIs de cómputo anual, guardias nocturnas, festivos, bajas y semanas de vacaciones por empleada.
- Exportación PDF y CSV: Descarga del calendario mensual en PDF de alta resolución y exportación de datos en CSV compatible con Excel.
- Sincronización Firebase: Persistencia en la nube con fallback automático a almacenamiento local (offline-first).
- Badge de Estado: Indicador visual en tiempo real del estado de conexión con el backend (🟢 Sincronizado / 🟡 Modo Local).
Stack Tecnológico
- Biblioteca principal: React.js 18
- Herramienta de compilación (Bundler): Vite 5
- Estilos: CSS Custom (Dark Mode, Glassmorphism)
- Exportación: jsPDF + html2canvas (carga dinámica) / CSV nativo
- Backend: Firebase Firestore via API Gateway local
- Diseño: Componentes responsive adaptados para visualización en tabletas en el mostrador.
Configuración
Variables de Entorno
Copiar .env.example a .env y configurar:
VITE_API_GATEWAY_URL=http://localhost:3000/api/fbDesarrollo
npm installnpm run dev # Inicia en http://localhost:5173Producción
npm run build # Genera la carpeta dist/npm run preview # Previsualiza la build de producción