3. Requisitos de interfaces externas - migueltovarb/ISWREQUERIMIENTOS202502-1danielchauxcampusucceduco GitHub Wiki
3.1 Interfaces de Usuario
La interfaz de usuario del sistema será una aplicación web responsiva, accesible desde navegadores modernos en diversos dispositivos. El diseño seguirá los principios de usabilidad, accesibilidad y consistencia visual, aferrandose a la identidad visual institucional de la universidad:
3.1.1 Principios de Diseño
El sistema adoptará un diseño limpio y profesional que priorice la claridad y la facilidad de uso. Se seguirá un enfoque "mobile-first", garantizando que todas las funcionalidades sean completamente operativas en dispositivos móviles, especialmente el registro de asistencia por parte de instructores. La navegación será intuitiva, con una estructura jerárquica clara y un máximo de tres clics para acceder a cualquier funcionalidad.
3.1.2 Style Tile - Guía de Estilo Visual
3.2 Interfaces de Hardware
El sistema no requiere interfaces especializadas con componentes de hardware específicos. Operará sobre hardware estándar de servidor y será accesible desde dispositivos de usuario convencionales que cuenten con:
- Memoria RAM: Mínimo 2GB para una experiencia fluida en el navegador.
- Pantalla: Resolución mínima de 320x568 píxeles hasta 3840x2160.
- Conexión a Internet: Ethernet, WiFi o datos móviles con ancho de banda mínimo de 1 Mbps (recomendado 5 Mbps).
- Dispositivos de entrada: Teclado y mouse/touchpad para computadoras, pantalla táctil para dispositivos móviles.
- Cámara (opcional): Para escanear códigos QR de certificados en futuras versiones.
3.3 Interfaces de Software
El sistema se integrará con los siguientes componentes de software externos:
3.3.1 Servicio de Almacenamiento.
- Propósito: Almacenar certificados PDF y fotos de instructores.
- Plataforma: Almacenamiento local en servidor o servicio en la nube.
- Protocolo: Sistema de archivos local o API REST.
- Datos: Archivos PDF, imágenes JPG/PNG.
3.3.2 Plataforma de Videoconferencia
- Propósito: Generar enlaces de sesión únicos para talleres virtuales.
- Plataformas: Microsoft Teams o Zoom (según convenio institucional).
- Protocolo: API REST con autenticación OAuth 2.0.
- Datos de Entrada: Título de la reunión, fecha y hora de inicio, duración, email del host (instructor).
- Datos de Salida: URL de la reunión, ID de la reunión, contraseña (si aplica).
- Frecuencia: Baja, solo al crear o modificar talleres virtuales.
3.3.3 Plataforma de Pagos
- Propósito: Procesar pagos de inscripciones a talleres con costo.
- Métodos Soportados: PSE, tarjetas de crédito/débito, consignación bancaria.
- Protocolo: API REST con autenticación mediante API keys.
- Datos de Entrada: Monto, moneda (COP), descripción del pago, datos del pagador (email), URL de retorno.
- Datos de Salida: ID de transacción, estado del pago (aprobado/rechazado/pendiente), comprobante.
- Frecuencia: Media, según inscripciones a talleres de pago.
- Seguridad: El sistema nunca almacenará datos de tarjetas de crédito; todo el procesamiento se realizará en los servidores de la pasarela cumpliendo con PCI DSS.
3.3.4 Excel o PDF para Reportes
- Propósito: Enviar verificaciones de correo, confirmaciones de inscripción, recordatorios automáticos, notificaciones de cambios y certificados.
- Protocolo: SMTP estándar (puerto 587 con STARTTLS) o API REST (SendGrid, Amazon SES).
- Datos de Entrada: Dirección de email del destinatario, asunto del mensaje, cuerpo del mensaje (HTML y texto plano), archivos adjuntos (certificados PDF).
- Datos de Salida: Confirmación de envío exitoso o mensaje de error.
- Frecuencia: Continua, según eventos del sistema.
3.4 Interfaces de Comunicaciones
Protocolo de Comunicación: Todas las comunicaciones entre el navegador del usuario y el servidor del sistema utilizarán el protocolo HTTPS (HTTP sobre TLS/SSL) en el puerto 443 estándar.
Formato de Mensajes: Las solicitudes y respuestas entre el cliente y el servidor utilizarán formato JSON (JavaScript Object Notation) para APIs REST.
Estándares de Comunicación: WebSockets (futuro) para notificaciones en tiempo real si se implementa esta funcionalidad.
Seguridad de Comunicaciones:
- Protección contra ataques CSRF (Cross-Site Request Forgery) mediante tokens.
- Protección contra ataques XSS (Cross-Site Scripting) mediante sanitización de entradas y Content Security Policy.
- Protección contra ataques SQL Injection mediante consultas parametrizadas.
El sistema está diseñado para operar eficientemente con conexiones de al menos 1 Mbps y las páginas deben cargar en menos de 3 segundos con una conexión de 5 Mbps.