2. Descripción general - migueltovarb/ISWREQUERIMIENTOS202502-2MarioZaMu GitHub Wiki

2.1 Perspectiva del Producto

La Plataforma de Bolsa de Trabajo es un sistema web independiente, modular y escalable, diseñado para digitalizar el proceso de búsqueda, publicación y seguimiento de ofertas laborales entre empresas y candidatos. No pertenece a una familia de productos previa ni reemplaza otro sistema existente, sino que constituye una solución nueva, integral y adaptable a distintos sectores empresariales y niveles profesionales.

El sistema se implementará bajo una arquitectura cliente-servidor, en la cual el frontend (interfaz de usuario) se comunicará con el backend (servidor de aplicación) mediante peticiones HTTP/HTTPS. Toda la información se almacenará en una base de datos centralizada que garantiza la integridad y seguridad de los datos de usuarios, ofertas y postulaciones.

El sistema está orientado a su uso mediante navegadores web modernos, ofreciendo una interfaz intuitiva, responsiva y accesible desde computadoras, tablets o dispositivos móviles.

2.2 Funciones del Producto

Las principales funciones del sistema se dividen según los tipos de usuarios:

Para Candidatos

RF001: Crear cuenta y autenticarse en el sistema.

RF002: Completar y actualizar su perfil profesional (experiencia, educación, competencias).

RF003: Buscar empleos por filtros (cargo, área, ubicación, tipo de contrato, salario).

RF004: Postularse a ofertas laborales activas.

RF005: Consultar el estado de cada postulación (en revisión, entrevista, rechazado, contratado).

RF006: Recibir notificaciones automáticas por correo o dentro de la plataforma.

RF007: Descargar o eliminar su historial de postulaciones.

Para Empresas

RF008: Registrar cuenta empresarial y autenticarse en el sistema.

RF009: Crear, editar y eliminar ofertas de empleo.

RF010: Consultar y filtrar las postulaciones recibidas.

RF011: Cambiar el estado de cada postulación y contactar candidatos seleccionados.

RF012: Recibir alertas sobre nuevas postulaciones y cambios de estado.

RF013: Generar reportes de actividad y estadísticas de contratación.

Para Administradores

RF014: Supervisar cuentas de usuarios y empresas registradas.

RF015: Aprobar, suspender o eliminar cuentas o publicaciones que incumplan políticas.

RF016: Gestionar reportes globales del sistema (usuarios activos, ofertas, postulaciones).

RF017: Mantener la base de datos y respaldos del sistema.

Funciones Generales del Sistema

RNF001: Garantizar la seguridad y privacidad de los datos personales.

RNF002: Mantener la disponibilidad continua del sistema (24/7).

RNF003: Proporcionar una interfaz intuitiva, rápida y adaptable a distintos dispositivos.

RNF004: Permitir la exportación de reportes en formatos PDF o Excel.

RNF005: Soportar notificaciones automáticas mediante correo electrónico y panel web.

2.3 Clases y Características de Usuario

El sistema cuenta con estos tipos de usuarios: El candidato es un usuario final con conocimientos técnicos básicos, cuya principal motivación es acceder a oportunidades laborales. Este perfil requiere una interfaz amigable, con opciones claras para buscar y postularse a empleos, además de herramientas que le permitan actualizar su información profesional.

Con usuario empresa que posee un nivel técnico intermedio y será responsable de publicar vacantes, revisar postulaciones y actualizar el estado de los procesos de selección. Este perfil necesita una interfaz más funcional y administrativa, orientada a la gestión y visualización de datos.

El ultimo es el administrador. del sistema tendrá acceso avanzado para gestionar usuarios, validar registros, eliminar contenido inapropiado y mantener la estabilidad general del portal. Este rol requiere una interfaz más técnica y herramientas de supervisión y control.

Cada tipo de usuario contará con permisos y accesos definidos según su rol, garantizando la seguridad y segmentación de las funciones del sistema.

2.4 Entorno Operativo

El sistema operará bajo un entorno web y de servidor estándar, con las siguientes especificaciones mínimas:

Hardware Recomendado

Servidor: CPU de 2 núcleos, 4 GB RAM, 20 GB de almacenamiento.

Cliente: Cualquier dispositivo con acceso a navegador moderno (PC, laptop, tablet o smartphone).

Software

Lenguaje Backend: Python 3.12+ o Node.js LTS.

Framework Backend: Django / Express.js.

Frontend: HTML5, CSS3, JavaScript, Bootstrap 5, React o Angular.

Base de Datos: MySQL o PostgreSQL (modo producción) / SQLite (modo desarrollo).

Sistema Operativo del Servidor: Ubuntu Server 22.04 LTS o Windows Server 2022.

Navegadores Compatibles: Google Chrome, Microsoft Edge, Mozilla Firefox y Safari.

El sistema será multiplataforma y responsivo, adaptándose a distintos tamaños de pantalla y garantizando una experiencia fluida tanto en equipos de escritorio como en dispositivos móviles.

2.5 Restricciones de Diseño e Implementación

Lenguaje obligatorio: Python con framework Django (o Node.js con Express según disponibilidad).

Base de datos: MySQL / PostgreSQL (producción) y SQLite (desarrollo).

Seguridad: Cifrado de contraseñas mediante bcrypt o Argon2; uso de HTTPS.

Interfaz web: Desarrollada con HTML5/CSS3 y componentes Bootstrap.

Integración futura: API REST para conexión con aplicaciones móviles y servicios externos (LinkedIn API, correo).

Arquitectura: Basada en modelo MVC (Model-View-Controller).

Restricciones de rendimiento: El tiempo máximo de respuesta del servidor no debe superar los 2 segundos por solicitud.

Normas de accesibilidad: Cumplimiento de los lineamientos WCAG 2.1 para usuarios con limitaciones visuales o motrices.

2.6 Documentación para el Usuario

La plataforma contará con una documentación básica dirigida a los diferentes tipos de usuarios del sistema. Esta incluirá las instrucciones necesarias para el registro, inicio de sesión, uso de las principales funciones y solución de problemas comunes.

Los candidatos podrán consultar cómo crear su perfil, adjuntar su hoja de vida y postularse a vacantes, mientras que las empresas encontrarán una guía sobre la publicación de ofertas y la revisión de postulaciones. Por su parte, los administradores dispondrán de indicaciones para gestionar usuarios y supervisar la actividad general del sistema.

La documentación estará disponible en formato digital dentro de la plataforma, redactada en un lenguaje claro y acompañada de ejemplos e ilustraciones que faciliten su comprensión.

2.7 Suposiciones y Dependencias

Suposiciones:

Los usuarios cuentan con acceso estable a Internet.

Los dispositivos utilizados soportan navegadores modernos con JavaScript habilitado.

Los administradores tienen conocimientos básicos en gestión de plataformas web.

El servidor y la base de datos permanecerán activos de forma continua.

Dependencias:

Dependencia del framework: Django/Express y sus librerías principales (ORM, autenticación, validadores).

Dependencia del servicio de correo: SMTP o API (SendGrid, Mailgun) para envío de notificaciones.

Dependencia de almacenamiento: servicio local o en la nube (AWS S3, Google Cloud Storage).

Dependencia de API externa: servicios de localización o validación de empresas (Google Maps API, LinkedIn API).

Dependencia futura: integración con portales laborales externos o redes profesionales.# 2.7 Suposiciones y Dependencias

Suposiciones:

Los usuarios tienen conexión estable a internet.

Los navegadores son compatibles con HTML5.

Las empresas y candidatos pueden manejar sistemas web básicos.

Dependencias:

Framework Flask y librerías asociadas (Flask-Login, SQLAlchemy, Flask-Mail).

Servicios externos: API de correo y posibles integraciones con LinkedIn o Indeed.

Servidor y base de datos activos 24/7.