Loading...

Manual Técnico

Simulador de Call Center
Bienvenido al Manual Técnico para la solución Simulador de call center
Repositorio: MynorCifuentes/LFP_2S2025_201318644


Descripción General

El sistema está desarrollad en Node.js con sintaxis ESM (import/export). Permite analizar archivos CSV de registros de llamadas y generar reportes HTML. Los módulos principales son Practica/index.js para la interacción de usuario y Reportes/Generador.js para la generación de reportes.


Flujo de Ejecución

  1. Inicio:
    El usuario ejecuta el script principal con:
    1
    node Practica/index.js
  2. Interfaz:
    El usuario interactúa mediante la consola (readline), usando stdin y stdout importados desde 'node:process'.
  3. Carga de Datos:
    El usuario ingresa el nombre de un archivo CSV ubicado en Practica/Entradas/. El sistema parsea el archivo y almacena los datos en memoria.
  4. Generación de Reportes:
    El usuario seleccina opciones del menú para generar reportes HTML en Practica/Salidas/.
    Si la carpeta Salidas no existe, los métodos lanzan un error controlado.

Detalles Técnicos

1. index.js (Practica/index.js)

  • Utiliza ES Modules (import).
  • Usa readline para entrada/salida por consola:
    1
    2
    import readline from 'readline';
    import { stdin as input, stdout as output } from 'node:process';
  • Las rutas a archivos son relativas.
  • Procesa archivos CSV dividiendo líneas y campos mediante .split().
  • Almacena operadores y clientes usando Map para evitar duplicados.
  • Llama a funciones de generación de reportes importadas desde Reportes/Generador.js.

2. Generador.js (Reportes/Generador.js)

  • Exporta funciones para crear reportes en HTML.
  • Utiliza fs.writeFileSync para generar archivos en la carpeta ./Salidas.
  • No crea la carpeta Salidas: si no existe, los métodos lanzan error controlado (try/catch).
  • Los reportes usan tablas HTML simples, sobrescriben el archivo si existe.
  • Cada función recibe los datos ya procesados (arreglos de objetos).

3. Entradas y Salidas

  • Entradas: archivos .csv con estructura definda (ver ejemplo en manual de usuario).
  • Salidas: archivos .html con tablas de datos, en la carpeta Salidas.

Ejemplo de Estructura de un Archivo CSV

1
2
3
4
id_operador,nombre_operador,estrellas,id_cliente,nombre_cliente
01,Juan Perez,x;x;x;x;x,100,Ana Lopez
02,Maria Ruiz,x;x;x;x,101,Luis Gomez
...
  • El campo estrellas contiene x separados por ;, donde la cantidad de x representa la calificación.

Manejo de Errores

  • Si la carpeta Salidas no existe, cada función de reporte muestra un mensaje de error en consola y no genera el archivo.
  • Si el archivo CSV no existe o tiene formato incorrecto, el sistema muestra un error y no carga datos.
  • Las opciones del menú que requieren datos cargados, pero no hay datos, generan reportes vacíos.

Extensión y Mantenimiento

  • Para agregar nuevos reportes, añae funciones en Reportes/Generador.js siguiendo la estructura de las existentes.
  • Puedes modificar la estructura de las tablas HTML según necesidades.
  • El sistema es modular: el procesamiento de datos y la generación de reportes están separados.

Dependencias

  • Node.js (v18 o superior recomendado)
  • No se utilizan paquetes externos, solo módulos nativos fs, readline y 'node:process'.

Contacto

Para reportar errores o sugerencias puedes hacerlos a través de los issues del repositorio:
Issues - MynorCifuentes/LFP_2S2025_201318644

avatar
Mynor Cifuentes
Mynor's personal blog
Follow Me
Announcement
Todo el código fuente compartido en este blog se encuentra bajo la licencia MIT. Puedes usar, modificar y distribuir el código para cualquier propósito, siempre y cuando incluyas la nota de copyright y la licencia original.