3. Requerimientos de Interfaces Externas - migueltovarb/ISWREQUERIMIENTOS202502-1Santix19 GitHub Wiki

Aquí tienes el texto de la Sección 3 adaptado al Sistema de Gestión de Talleres y Seminarios, seguido del prompt para Lovable.


3). Requerimientos de Interfaces Externas

3.1 Interfaces de Usuario

Características principales:

  • GUI Web Responsiva: Interfaz adaptativa que diferencia vistas según el rol del usuario:
    • Asistente: Catálogo de talleres (Grid de tarjetas), carrito de inscripción y área personal ("Mis Cursos").
    • Ponente: Lista de cursos asignados y gestor de archivos (subida de materiales).
    • Administrador: Tablas de gestión (CRUD) con filtros avanzados para usuarios, pagos y talleres.
  • Estilo Visual: Diseño basado en Material Design o Bootstrap, priorizando la legibilidad académica y la facilidad de navegación.
  • Botones Estándar: Inscribirse, Pagar, Descargar Certificado, Subir Material.
  • Feedback del Sistema:
    • Éxito: Banners verdes (toasts) para confirmaciones de pago o inscripción.
    • Error: Alertas rojas explicativas (ejemplo: "Cupos agotados: No es posible inscribirse").

Pantallas Principales:

  1. Landing Page: Catálogo público de talleres y seminarios.
  2. Login / Registro: Acceso unificado.
  3. Dashboard: Resumen de inscripciones activas y certificaciones logradas.
  4. Pasarela de Pago: Formulario seguro para transacciones.
  5. Vista de Taller: Detalles del evento, descarga de recursos y enlace al certificado.

3.2 Interfaces de Hardware

La arquitectura del Sistema de Gestión de Talleres y Seminarios (SGTS) está diseñada para ser agnóstica al hardware, permitiendo el acceso desde dispositivos de consumo masivo sin requerir infraestructura especializada.

  • Acceso Universal Web: El sistema se ejecuta sobre navegadores estándar (Chrome, Firefox, Edge), eliminando la necesidad de instalar software cliente. Es compatible con:
    • Computadoras de Escritorio/Laptops: Resolución mínima recomendada de 1366x768 para paneles administrativos.
    • Dispositivos Móviles: Interfaz optimizada para Smartphones y Tablets, vital para presentar el código QR de entrada o descargar materiales in-situ.
  • Recursos del Cliente: Opera bajo modelo thin-client; el procesamiento pesado ocurre en el servidor. Requisitos mínimos del cliente: 2 GB de RAM y conexión a internet estable.
  • Soporte de Impresión y Archivos:
    • Capacidad para generar y descargar documentos en formato PDF (Certificados y Materiales de lectura).
    • Compatibilidad con el diálogo de impresión nativo del navegador para imprimir listas de asistencia o diplomas físicos.

3.3 Interfaces de Software

Las interfaces de software definen la comunicación entre el núcleo del SGTS, la base de datos y los servicios externos, asegurando modularidad y escalabilidad.

Base de Datos (Prioridad: Alta):

  • Tecnología: PostgreSQL (Producción) o SQLite (Desarrollo).
  • Esquema: Modelo relacional normalizado que vincula Usuarios, Talleres, Inscripciones y Pagos.
  • Acceso: Mediante ORM (Django ORM) para abstraer las consultas SQL y garantizar la seguridad de los datos.

API REST y Comunicación (Prioridad: Alta):

  • Formato: Intercambio de datos en formato JSON sobre HTTP/HTTPS.
  • Ejemplo de Inscripción (Endpoint POST /api/v1/inscripciones/):
    {
      "id_usuario": 402,
      "id_taller": 85,
      "metodo_pago": "tarjeta_credito",
      "requiere_certificado": true
    }
    
  • Respuesta Esperada:
    {
      "status": "success",
      "mensaje": "Inscripción confirmada. Se ha enviado el recibo a su correo.",
      "link_acceso": "https://sgts.edu/mis-cursos/85"
    }
    

Servicios de Notificación (Prioridad: Media):

  • Tecnología: Integración vía SMTP (ej. Gmail Relay o SendGrid).
  • Funcionalidad: Envío automático de confirmaciones de inscripción, avisos de cambio de horario y entrega de certificados digitales adjuntos.

Mecanismos de Seguridad (Prioridad: Alta):

  • Autenticación: Tokens JWT para manejo de sesiones seguras.
  • Roles: Sistema ACL para asegurar que un Asistente no pueda acceder al panel de Administración.

3.4 Interfaces de Comunicaciones

El sistema prioriza la seguridad en la transmisión de datos, especialmente durante los procesos de pago e inscripción.

  • Protocolo de Transporte: HTTPS (TLS 1.2/1.3) obligatorio para todas las conexiones, cifrando la información de extremo a extremo.
  • Formatos de Datos: JSON para la comunicación entre el frontend y el backend, optimizando la velocidad de carga en redes móviles.
  • Notificaciones: Uso de protocolo SMTP seguro (puerto 587 con STARTTLS) para el envío de correos electrónicos transaccionales.
  • Integraciones (Opcional): Webhooks para pasarelas de pago (ej. Stripe/PayPal) para recibir confirmaciones de transacciones en tiempo real sin intervención del usuario.