Control de Acceso por QR con Aprobación por Correo (Web + Smartphone)
Budget: $30 – $250 USD
Objetivo
Desarrollar un sistema que registre ingresos y salidas a áreas escaneando un código QR fijo en cada acceso, usando el smartphone del guardia/usuario. El backend web permitirá gestionar áreas, permisos y aprobaciones. Las autorizaciones llegarán por email al responsable del área; el correo debe incluir enlaces seguros “Aprobar / Rechazar” (un solo clic) que habiliten o nieguen el acceso.
Alcance funcional
• Roles
• Superadmin: crea organizaciones/áreas, configura políticas y usuarios.
• Admin de área: recibe solicitudes, aprueba/deniega, ve reportes.
• Operador/Guardia: escanea QR en el punto de acceso para check-in/out.
• Visitante/Contratista/Empleado: puede pre-registrarse (opcional).
• Flujos clave
1. Check-in: Operador escanea el QR del acceso → sistema reconoce área → ingresa RUT/ID o selecciona persona pre-registrada → dispara solicitud por email al responsable del área.
2. Aprobación por correo: Email con botón “Sí/No” (enlaces firmados, de un solo uso y con expiración) → si “Sí”, se registra acceso permitido y libera el paso; si “No”, se registra denegado.
3. Check-out: Re-escaneo del QR para egreso o auto–checkout por regla (p. ej., al final de turno).
• Políticas
• Ventana de validez (minutos) para la aprobación.
• Listas blancas/negadas por área y tipo de persona.
• Horarios autorizados, cupos máximos por área, motivo de visita.
• Operación en smartphone
• PWA (web móvil) con cámara para escanear QR (sin instalar app) y modo “pantalla grande” para guardias.
• Opción futura: app nativa si se requiere lectura avanzada/offline.
• Notificaciones
• Email al responsable del área con Aprobar/Rechazar.
• (Opcional) Notificación a quien solicita y al guardia.
• Reportes & Auditoría
• Bitácora completa (quién, cuándo, área, decisión, IP/dispositivo).
• KPI: tiempos de aprobación, denegaciones, ocupación por área.
• Exportación CSV/Excel; filtros por rango de fechas y área.
• Integraciones
• SMTP/365/Google para correo saliente.
• Webhooks/API REST para integrar con DCS/BMS/HR u otros.
• (Opcional) SSO (Google/Microsoft/Okta) y directorio de empleados.
Requisitos no funcionales
• Seguridad
• Enlaces de aprobación firmados (HMAC/RS256), expiran y un solo uso; registran IP, agente y timestamp.
• JWT/OAuth2, RBAC granular, password hashing, 2FA para admins.
• Cifrado TLS en tránsito y AES-at-rest para datos sensibles.
• Rate limiting, anti–replay y protección CSRF.
• Disponibilidad & rendimiento
• Objetivo 99.5% (mínimo) + colas para envío de correos.
• Respuesta sub-1s en escaneo/aprobación (sin contar email).
• Privacidad
• Cumplimiento normativa local (bases de datos personales), retención configurable, anonimización en exportes opcionales.
• Escalabilidad
• Multi-organización (tenant), separación lógica de datos.
Stack sugerido (abierto a propuesta)
• Backend: Node.js (NestJS) o Python (Django/DRF).
• DB: PostgreSQL; Redis para colas y sesiones.
• Frontend (Web/PWA): React/Next.js (cámara + QR via BarcodeDetector/zxing-js).
• Infra: Docker; despliegue en AWS/GCP/Azure; CI/CD.
• Email: SMTP/Graph API; plantillas HTML transaccionales.
• API: REST (y/o GraphQL), OpenAPI documentado.
• Testing: unit/integration + e2e (Playwright/Cypress).
Entregables
• Código fuente (web + PWA), documentación técnica y manual de operación.
• Infra as code (Docker Compose/Terraform opcional).
• Suite de tests + cobertura mínima 80%.
• Ambiente demo operativo + scripts de seeding.
• 30 días de soporte correctivo post–go-live.
Criterios de aceptación (muestra)
• Escanear QR → enviar email → aprobar con 1 clic → acceso queda “Permitido” y se registra en bitácora con hash de integridad.
• Enlace de aprobación expira (p. ej., 10 min) y no puede reutilizarse.
• Reporte por día/área exportable a CSV con tiempos de aprobación.
• RBAC: un Admin de área no ve datos de otras áreas/organizaciones.
Plazo & presupuesto
• Proponer cronograma por hitos: MVP (6–8 semanas) + mejoras.
• Presupuesto cerrado por hitos (MVP + endurecimiento + reportes).
Desarrollar un sistema que registre ingresos y salidas a áreas escaneando un código QR fijo en cada acceso, usando el smartphone del guardia/usuario. El backend web permitirá gestionar áreas, permisos y aprobaciones. Las autorizaciones llegarán por email al responsable del área; el correo debe incluir enlaces seguros “Aprobar / Rechazar” (un solo clic) que habiliten o nieguen el acceso.
Alcance funcional
• Roles
• Superadmin: crea organizaciones/áreas, configura políticas y usuarios.
• Admin de área: recibe solicitudes, aprueba/deniega, ve reportes.
• Operador/Guardia: escanea QR en el punto de acceso para check-in/out.
• Visitante/Contratista/Empleado: puede pre-registrarse (opcional).
• Flujos clave
1. Check-in: Operador escanea el QR del acceso → sistema reconoce área → ingresa RUT/ID o selecciona persona pre-registrada → dispara solicitud por email al responsable del área.
2. Aprobación por correo: Email con botón “Sí/No” (enlaces firmados, de un solo uso y con expiración) → si “Sí”, se registra acceso permitido y libera el paso; si “No”, se registra denegado.
3. Check-out: Re-escaneo del QR para egreso o auto–checkout por regla (p. ej., al final de turno).
• Políticas
• Ventana de validez (minutos) para la aprobación.
• Listas blancas/negadas por área y tipo de persona.
• Horarios autorizados, cupos máximos por área, motivo de visita.
• Operación en smartphone
• PWA (web móvil) con cámara para escanear QR (sin instalar app) y modo “pantalla grande” para guardias.
• Opción futura: app nativa si se requiere lectura avanzada/offline.
• Notificaciones
• Email al responsable del área con Aprobar/Rechazar.
• (Opcional) Notificación a quien solicita y al guardia.
• Reportes & Auditoría
• Bitácora completa (quién, cuándo, área, decisión, IP/dispositivo).
• KPI: tiempos de aprobación, denegaciones, ocupación por área.
• Exportación CSV/Excel; filtros por rango de fechas y área.
• Integraciones
• SMTP/365/Google para correo saliente.
• Webhooks/API REST para integrar con DCS/BMS/HR u otros.
• (Opcional) SSO (Google/Microsoft/Okta) y directorio de empleados.
Requisitos no funcionales
• Seguridad
• Enlaces de aprobación firmados (HMAC/RS256), expiran y un solo uso; registran IP, agente y timestamp.
• JWT/OAuth2, RBAC granular, password hashing, 2FA para admins.
• Cifrado TLS en tránsito y AES-at-rest para datos sensibles.
• Rate limiting, anti–replay y protección CSRF.
• Disponibilidad & rendimiento
• Objetivo 99.5% (mínimo) + colas para envío de correos.
• Respuesta sub-1s en escaneo/aprobación (sin contar email).
• Privacidad
• Cumplimiento normativa local (bases de datos personales), retención configurable, anonimización en exportes opcionales.
• Escalabilidad
• Multi-organización (tenant), separación lógica de datos.
Stack sugerido (abierto a propuesta)
• Backend: Node.js (NestJS) o Python (Django/DRF).
• DB: PostgreSQL; Redis para colas y sesiones.
• Frontend (Web/PWA): React/Next.js (cámara + QR via BarcodeDetector/zxing-js).
• Infra: Docker; despliegue en AWS/GCP/Azure; CI/CD.
• Email: SMTP/Graph API; plantillas HTML transaccionales.
• API: REST (y/o GraphQL), OpenAPI documentado.
• Testing: unit/integration + e2e (Playwright/Cypress).
Entregables
• Código fuente (web + PWA), documentación técnica y manual de operación.
• Infra as code (Docker Compose/Terraform opcional).
• Suite de tests + cobertura mínima 80%.
• Ambiente demo operativo + scripts de seeding.
• 30 días de soporte correctivo post–go-live.
Criterios de aceptación (muestra)
• Escanear QR → enviar email → aprobar con 1 clic → acceso queda “Permitido” y se registra en bitácora con hash de integridad.
• Enlace de aprobación expira (p. ej., 10 min) y no puede reutilizarse.
• Reporte por día/área exportable a CSV con tiempos de aprobación.
• RBAC: un Admin de área no ve datos de otras áreas/organizaciones.
Plazo & presupuesto
• Proponer cronograma por hitos: MVP (6–8 semanas) + mejoras.
• Presupuesto cerrado por hitos (MVP + endurecimiento + reportes).