Servicio de APIs para reportes em gestor y en app Cursalab v2.
###Requerimientos
- Node <= 12
Esta api sirve a el modulo de reportes desde el uso de los filtros, hasta la generacion de los reportes en formato .xlsx.
main -> para producción testing -> para testing
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
Para usar el api se necesita enviar los datos al endpoint que se muestran a continuación
- Valores necesarios :
si
- Tipos de datos
- dni :
int
- dni :
POST /notas_usuario
{
"dni": "11111111"
}
- Valores necesarios :
no
- Tipos de datos
- modulo :
int
- carrera :
array
- modulo :
POST /usuarios
{
"modulo": 8,
"carrera": [
49,
50,
51
]
}
- Valores necesarios :
no
- Tipos de datos :
- modulo :
int
- carrera :
array
- modulo :
POST /visitas
{
"modulo": 8,
"carrera": [
49,
50,
51
]
}
- Valores necesarios :
no
- Tipos de datos
- Integer :
- modulo
- escuela
- curso
- tema
- String :
- start
- end
- Boolean
- aprobados
- desaprobados
- temasActivos
- temasInactivos
- Integer :
POST /notas_tema
{
"modulo": 9,
"escuela": 67,
"curso": 575,
"tema": 2155,
"start": "2020-12-24",
"end": "",
"aprobados": true,
"desaprobados": true,
"temasActivos": true,
"temasInactivos": true
}
- Valores necesarios :
no
- Tipos de datos
- Integer :
- modulo
- escuela
- curso
- String :
- start
- end
- Boolean
- aprobados
- desaprobados
- pendientes
- realizados
- cursosActivos
- cursosInactivos
- Integer :
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
}
- Valores necesarios :
no
- Tipos de datos
- Integer :
- modulo
- escuela
- curso
- tema
- String :
- start
- end
- Integer :
POST /evaluaciones_abiertas
{
"modulo": 14,
"escuela": 72,
"curso": "",
"tema": "",
"start": "2020-12-30",
"end": "2020-12-31"
}
- Valores necesarios :
no
- Tipos de datos
- Integer :
- admin
- String :
- tipo
- start
- end
- Integer :
POST /reinicios
{
"admin": 34,
"tipo": "por_tema",
"start": "2020-12-09",
"end": "2020-12-05"
}
GET /versiones_usadas
- Valores necesarios :
no
- Tipos de datos
int
POST /cursos_pendientes
{
"modulo": 8,
"escuela": 66,
"curso": 574
}
- Valores necesarios :
no
- Tipos de datos
- Integer :
- modulo
- escuela
- curso
- String :
- start
- end
- Boolean :
- completados
- pendientes
- Integer :
POST /consolidado_cursos
{
"modulo": 8,
"escuela": 66,
"curso": 574,
"start": "",
"end": "",
"completados": true,
"pendientes": true
}
- Valores necesarios :
no
- Tipos de datos
- Integer :
- modulo
- escuela
- curso
- tema
- String :
- start
- end
- Boolean :
- aprobados
- desaprobados
- pendientes
- temasActivos
- temasInactivos
- Integer :
POST /consolidado_temas
{
"modulo": 9,
"escuela": 67,
"curso": 575,
"tema": 2165,
"start": "",
"end": "",
"aprobados": true,
"desaprobados": true,
"pendientes": true,
"temasActivos": true,
"temasInactivos": true
}
- 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
- Es el nombre del archivo descargado en formato
- 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"
}
- 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"
}
}
]
}
- 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
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.