valntna / nest-angular-proyect

Desafío para práctica developer en Cotalker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

nest-angular-proyect

Desafío práctica developer CoTalker

Aplicación que en base a un archivo .csv grafica las sesiones activas de los usuarios con filtros de:

  • Companía
  • Usuario
  • Intervalo Activo
  • Rango de Fecha

Manejo del log de llamadas

Ya que son alrededor de 23 millones de datos se genera una base de datos llamadas.db en SQLite a través un script de python log.to.database.py Es un proceso corto y facilita el filtro de los datos.

Los queries a la base de datos se hacen en el backend de la aplicación, más precisamente en ~/backend/src/datos-sesiones por medio del controlador datos-sesiones.controller y el servicio session-service

Cómo correr la aplicación

Requerimientos:

  • Angular CLI - para instalar -> npm install -g @angular/cli
  • NestJs CLI - para instalar -> npm i -g @nestjs/cli

Se deben instalar las dependencias de ambos proyectos, para esto preferemente se usa npm ci pero npm install tambien sirve. Se tiene tanto angular como nest.js por lo que se debe usar dos comandos en forma paralela: ng serve en la AngularCLI (~/frontend) y npm run start para NestJs (~/backend).

El servidor del frontend es localhost:4200 y del backend es localhost:3000/datos-sesiones

Un detalle importante es que al conectarse a la base de datos por SQLite3 se debe especificar la dirección completa de dónde se ubica el archivo .db el path se señala en la función init() en el servicio session-service.

Uso de la aplicación

Una vez transpilados tanto el backend como el frontend basta con dirigirse a localhost:4200 en el navegador de tu preferencia y ya se puede ingresar los datos para filtrar las llamadas y graficar las sesiones activas. Es una aplicación sencilla que tiene 5 campos:

  • Compañía: Debe ingresarse un número
  • Usuario: Puede ser el ID de un usuario en particular o se puede pedir ver todos los usuarios ingresando cualquier variación de 'todos' (no es case sensitive)
  • Intervalo Activo: Se debe ingresar el intervalo en minutos
  • Fecha Inicial: Inicio del rango que se quiere graficar (*)
  • Fecha Final: Fin del rango que se quiere graficar (*)

(*)Deben ingresarse con formato YYYY-MM-DD para poder obtener el gráfico.

Una vez ingresados los datos se envía el formulario haciendo click en el botón 'Generar'.

Se debe esperar unos segundos para poder ver el resultado.

About

Desafío para práctica developer en Cotalker


Languages

Language:TypeScript 89.2%Language:JavaScript 5.2%Language:HTML 4.1%Language:Python 1.3%Language:CSS 0.1%