ialbertocamilo / api_reportes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Reportes para San Pablo

Servicio de APIs para reportes em gestor y en app Cursalab v2.

###Requerimientos

  • Node <= 12

Comenzando 🚀

Esta api sirve a el modulo de reportes desde el uso de los filtros, hasta la generacion de los reportes en formato .xlsx.

Ramas

main -> para producción testing -> para testing

Primeros pasos 📋

Clonar

git clone http:///

Instalar despendencias

npm install

Iniciar el servidor de desarrollo

npm run dev

Iniciar el servidor de pm2 (Solo producción)

npm run pm2

Puedes ver tambien los comandos en el paquete package.json > scripts

HTTP Request

Para usar el api se necesita enviar los datos al endpoint que se muestran a continuación

Notas usuario Valores POST

  • Valores necesarios : si
  • Tipos de datos
    • dni : int
POST  /notas_usuario
{
  "dni": "11111111"
}

Usuarios Reporte POST

  • Valores necesarios : no
  • Tipos de datos
    • modulo : int
    • carrera : array
POST  /usuarios
{
  "modulo": 8,
  "carrera": [
    49,
    50,
    51
  ]
}

Visitas Reporte POST

  • Valores necesarios : no
  • Tipos de datos :
    • modulo : int
    • carrera : array
POST  /visitas
{
  "modulo": 8,
  "carrera": [
    49,
    50,
    51
  ]
}

Notas por tema Reporte POST

  • Valores necesarios : no
  • Tipos de datos
    • Integer :
      • modulo
      • escuela
      • curso
      • tema
    • String :
      • start
      • end
    • Boolean
      • aprobados
      • desaprobados
      • temasActivos
      • temasInactivos
POST  /notas_tema
{
  "modulo": 9,
  "escuela": 67,
  "curso": 575,
  "tema": 2155,
  "start": "2020-12-24",
  "end": "",
  "aprobados": true,
  "desaprobados": true,
  "temasActivos": true,
  "temasInactivos": true
}

Notas por curso Reporte POST

  • Valores necesarios : no
  • Tipos de datos
    • Integer :
      • modulo
      • escuela
      • curso
    • String :
      • start
      • end
    • Boolean
      • aprobados
      • desaprobados
      • pendientes
      • realizados
      • cursosActivos
      • cursosInactivos
POST  /notas_curso
{
  "modulo": 9,
  "escuela": 67,
  "curso": 575,
  "start": "2020-12-08",
  "end": "2020-12-30",
  "aprobados": true,
  "desaprobados": true,
  "pendientes": true,
  "realizados": true,
  "cursosActivos": true,
  "cursosInactivos": true
}

Evaluaciones abiertas Reporte POST

  • Valores necesarios : no
  • Tipos de datos
    • Integer :
      • modulo
      • escuela
      • curso
      • tema
    • String :
      • start
      • end
POST  /evaluaciones_abiertas
{
  "modulo": 14,
  "escuela": 72,
  "curso": "",
  "tema": "",
  "start": "2020-12-30",
  "end": "2020-12-31"
}

Reinicios Reporte POST

  • Valores necesarios : no
  • Tipos de datos
    • Integer :
      • admin
    • String :
      • tipo
      • start
      • end
POST  /reinicios
{
  "admin": 34,
  "tipo": "por_tema",
  "start": "2020-12-09",
  "end": "2020-12-05"
}

Versiones usadas Reporte GET

GET  /versiones_usadas

Cursos pendientes Reporte POST

  • Valores necesarios : no
  • Tipos de datosint
POST  /cursos_pendientes
{
  "modulo": 8,
  "escuela": 66,
  "curso": 574
}

Consolidado por cursos Reporte POST

  • Valores necesarios : no
  • Tipos de datos
    • Integer :
      • modulo
      • escuela
      • curso
    • String :
      • start
      • end
    • Boolean :
      • completados
      • pendientes
POST  /consolidado_cursos
{
  "modulo": 8,
  "escuela": 66,
  "curso": 574,
  "start": "",
  "end": "",
  "completados": true,
  "pendientes": true
}

Consolidado por temas Reporte POST

  • Valores necesarios : no
  • Tipos de datos
    • Integer :
      • modulo
      • escuela
      • curso
      • tema
    • String :
      • start
      • end
    • Boolean :
      • aprobados
      • desaprobados
      • pendientes
      • temasActivos
      • temasInactivos
POST  /consolidado_temas
{
  "modulo": 9,
  "escuela": 67,
  "curso": 575,
  "tema": 2165,
  "start": "",
  "end": "",
  "aprobados": true,
  "desaprobados": true,
  "pendientes": true,
  "temasActivos": true,
  "temasInactivos": true
}

HTTP Response

Reportes

  • createAt : UNIX_TIMESTAMP
    • Es el nombre del archivo descargado en formato UNIX_TIMESTAMP. Esto se usa para encontrar el archivo en el /storage de laravel y descargarlo con un nuevo nombre desde el cliente
  • modulo : String
    • Nombre del modulo que se usara como un nuevo nombre para el archivo .xlsx
  • extension : String
    • Extension que usara el nuevo archivo para completar la creación de este.
{
  "createAt": 1608333441649,
  "modulo": "Consolidado_Tema",
  "extension": ".xlsx"
}

Valores

  • Tipo de datos : Object
  • Usuarios
    • Datos basicos del usuario
  • Notas
    • Informacion de su avance
{
  "Usuario": {
    "Nombres": "pruebas",
    "Modulo": "GRUPO SAN PABLO (pruebas)",
    "Carrera": "BACK OFFICE",
    "Ciclo": "GRUPO OCUPACIONAL 1"
  },
  "Notas": [
    {
      "Escuela": "Escuela 1",
      "Curso": "¡Bienvenidos a todos al Grupo San Pablo!",
      "Tema": "Tema 3 Libre",
      "Nota": null,
      "Estado": "Desaprobado",
      "Ultima evaluación": "24/11/2020",
      "_cellVariants": {
        "Estado": "danger"
      }
    }
  ]
}

Paquetes 📦

  • Cron - Ejecuta tareas en un momento especifico
  • ExcelJS - Importa/Exporta/Maneja excel en formato .xslx
  • mysql2 - Cliente MySQL para Node.JS
  • pm2 - Administrador de procesos para producción
  • Express - Framework web para Node.JS
  • morgan - Framework web para Node.JS

Versionado 📌

Por el momento no se esta implementando el sistema de versionado v1/v2/v3, ya que por la necesidad de rapidez todo se trabajo en una sola version. Proximamente necesario como una buena practica.

About


Languages

Language:JavaScript 98.7%Language:Handlebars 1.0%Language:Makefile 0.2%Language:Dockerfile 0.2%