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.