3. Requisitos de Interfaces Externas - SamuelSalcedo22/My-GitHub-Project-IngRequisitos GitHub Wiki

3.1 Interfaces de Usuario

La plataforma de Bolsa de Empleo cuenta con una interfaz web accesible desde navegadores modernos, diseñada para brindar una experiencia clara y diferenciada según el tipo de usuario (empresa o candidato). A continuación se describen las características lógicas de las interfaces disponibles para cada rol, incluyendo las pantallas principales, elementos comunes, convenciones de diseño y componentes que requieren interfaz de usuario.

Interfaces para Empresa

Pantallas principales:

  • Registro de Empresa

  • Inicio de Sesión

  • Panel de gestión de ofertas (crear, editar, eliminar)

  • Lista de candidatos por oferta

  • Cambio de estado de postulaciones

  • Opinión sobre candidatos

Componentes clave:

  • Formulario personalizado de registro con campos como nombre de empresa y credenciales de acceso.

  • Botones estándar: Guardar, Cancelar, Publicar, Eliminar.

  • Indicador visual del estado de cada postulación (Postulado, Entrevistado, Seleccionado, Rechazado).

  • Mensajes de confirmación al realizar acciones exitosas.

Interfaces para Candidato

Pantallas principales:

  • Registro de Candidato

  • Inicio de Sesión

  • Visualización de Ofertas Laborales

  • Formulario de postulación

  • Estado de sus postulaciones

  • Opinión sobre empresas

Componentes clave:

  • Formularios simplificados con campos como nombre completo, email y contraseña.

  • Botones estándar: Postularse, Volver, Editar perfil.

  • Panel con estado de sus postulaciones.

  • Interfaz intuitiva para escribir y enviar reseñas a empresas.

  • Feedback inmediato tras postularse ( "Tu postulación fue enviada exitosamente."). imagen

3.2 Hardware Interfaces

El sistema de Bolsa de Empleo es una aplicación web desarrollada en Django que se ejecuta sobre hardware estándar de servidores y es accedida por los usuarios a través de dispositivos cliente. A continuación, se describen las interfaces lógicas y físicas relacionadas con el hardware involucrado:

Dispositivos Cliente (usuarios finales)

Tipos soportados:

  • Computadores de escritorio (Windows, macOS, Linux)

  • Laptops

  • Tablets y smartphones (navegadores móviles)

Interacción con el sistema:

  • Los usuarios acceden al sistema mediante navegadores web compatibles (Chrome, Firefox, Edge, Safari).

  • No se requiere la instalación de software adicional.

  • La interacción es de tipo cliente-servidor utilizando peticiones HTTP/HTTPS.

Requisitos mínimos recomendados:

  • Resolución mínima: 1280x720 px

  • Navegador actualizado con soporte para HTML5, CSS3 y JavaScript

  • Conectividad a Internet estable

Servidor Web (donde corre el backend Django)

Requisitos físicos:

  • Procesador: Mínimo 2 núcleos (recomendado 4 núcleos)

  • Memoria RAM: 4 GB (mínimo) – 8 GB (óptimo)

  • Almacenamiento: SSD 20 GB libre para sistema + base de datos + archivos estáticos

  • Sistema Operativo: Ubuntu Server 20.04+ / Windows Server 2019+

Componentes clave:

  • Servidor web: Apache o Nginx (según configuración de despliegue)

  • WSGI server: Gunicorn o uWSGI

  • Base de datos: SQLite (en desarrollo) o PostgreSQL (para producción)

  • Framework backend: Django 4.x

  • Protocolo de comunicación: HTTP/HTTPS con TLS

Seguridad y control de hardware

  • El sistema no interactúa directamente con hardware específico del usuario (como dispositivos USB o sensores).

  • Las interacciones están encapsuladas dentro de la lógica del navegador, controlada por el servidor.

  • Todos los datos se transmiten mediante protocolos seguros (HTTPS).

3.3 Software Interfaces

El sistema de Bolsa de Empleo desarrollado en Django establece múltiples interfaces con componentes de software clave que permiten su funcionamiento, despliegue, comunicación con la base de datos, y experiencia del usuario final. A continuación, se describen los principales componentes con los que interactúa el sistema, así como los datos y servicios implicados.

Sistema Operativo

  • Nombre: Compatible con Windows 10+ o macOS para entornos de desarrollo y despliegue.

  • Interacción: El sistema se ejecuta sobre el sistema operativo del servidor. Las herramientas de línea de comandos y los entornos virtuales se utilizan para ejecutar el entorno Django, manejar migraciones y gestionar el servidor web.

Framework y Lenguaje Principal

  • Framework: Django 4.x (Python)

  • Lenguaje: Python 3.10+

  • Interacción: Django maneja el enrutamiento, lógica de negocio, autenticación de usuarios, ORM para bases de datos y renderizado de vistas HTML.

Base de Datos

  • Desarrollo: SQLite 3 (base de datos por defecto de Django)

  • Producción (recomendado): PostgreSQL 13+

  • El sistema guarda y consulta datos de:

  • Usuarios (empresas, candidatos)
  • Ofertas laborales
  • Postulaciones
  • Opiniones
  • Django ORM gestiona automáticamente las migraciones, relaciones y consultas.

Librerías y herramientas integradas

Componente Versión sugerida Propósito funcional
django-crispy-forms ^2.0 Mejora la presentación visual de formularios
gunicorn ^20.1 Servidor WSGI en producción
whitenoise ^6.6 Manejo de archivos estáticos en producción
bootstrap (CDN) 5.x Diseño responsivo de la interfaz
fontawesome (CDN) Latest Iconografía para formularios y botones

Flujo de datos entrantes y salientes

Dirección Tipo de dato Origen/Destino Propósito
Entrada POST/GET Navegador del usuario Autenticación, registro, formularios de postulación
Entrada Archivos Usuario (opcional) Carga de CV u otros archivos si se habilita
Salida HTML/JSON Servidor → cliente Renderización de plantillas, redirecciones, mensajes de estado
Salida Logs del sistema Consola/archivo Registro de errores y acciones del sistema

3.4 Communications Interfaces

El sistema de Bolsa de Empleo requiere comunicación activa entre usuarios, servidor y la base de datos mediante el protocolo HTTP/HTTPS. A continuación se describen los requisitos de comunicación necesarios, los protocolos utilizados, estándares involucrados, y mecanismos de seguridad y sincronización.

Comunicación mediante navegador web

  • Canal de acceso principal: Navegador web moderno (Chrome, Firefox, Edge, Safari).

  • Protocolo de comunicación: HTTP/1.1 y HTTPS con TLS 1.2+.

*Formato de mensajes:

  • Entradas: Formularios HTML
  • Salidas: HTML renderizado dinámicamente con datos de la base de datos.
  • Respuestas específicas: redirecciones, mensajes flash (Django messages), formularios con errores o confirmaciones.

Comunicación interna cliente-servidor

  • Flujo: Usuario envía solicitudes HTTP al servidor Django (vistas basadas en funciones o clases), el cual responde renderizando páginas HTML o redireccionando con mensajes de estado.

  • Sincronización: Se gestiona mediante el ciclo de petición/respuesta HTTP.

Comunicación con el servidor de base de datos

  • Motor: SQLite en desarrollo / PostgreSQL en producción.

  • Tipo de comunicación: Interna al servidor.

  • Protocolo: Llamadas al ORM de Django que se traducen a SQL.

  • No expone interfaces remotas ni conexiones externas.