Este proyecto fue hecho para poner en practica los conocimientos adquiridos respecto al uso de dependencias como Express, eslint y Jest.
Mediante este proyecto, el usuario puede consultar, mediante un servidor, una lista de alumnos alojada en un archivo json.
Si desea ver el servidor remoto de la API, está en esta dirección https://visual-thinking-api.herokuapp.com/
- Jest
- Llevar a cabo las pruebas unitarios necesarias de cada módulo
- Express
- Crear el servidor y comunicar entre este y el usuario
- eslint
- Corregir posibles problemas dentro del código y aplicar un formato
flowchart TD
virtualpartners.Json-->Reader-->VisualPartnerFilter-->VisualPartnerController-->Server
Donde:
- Reader
- Interpreta el archivo Json y almacena envía sus datos
classDiagram class Reader{ +static returnFile(path) }
- returnFile:
-El módulo recibe la ubicación del archivo JSON a leer (path).
-Los datos del archivo los almacena y lo envía como respuesta
- returnFile:
- VisualPartnerFilter
- Procesa los datos interpretados por "Reader" y filtra la información de acuerdo a los requisitos solicitados
- getVirtualPartners():
-Se encarga de enviar la ubicación del archivo JSON al módulo Reader,y almacena la lista de datos de los estudiantes de VirtualPartners - getEmailsWithCertification():
-Con la lista obtenida por getVirtualPartners(), filtra a los estudiantes cuyo value para la key "haveCertification" sea el valor booleano True.
-Ya almacenados los datos de los estudiantes filtrados, envía como respuesta un array con el "email" de cada estudiante - getStudentsWith500Credits():
-Con la lista de datos obtenida por getVirtualPartners(), filtra a los estudiantes cuyo value para la key "credits" sea mayor a 500, y los envia como respuesta. - VisualPartnerController
- Recibe la solicitud de información del "Server", la cual envía al método en "VisualPartnerFilter" correspondiente.
- getStudentsVirtualP():
-Recibe la petición de server.js
-Llama al método getVirtualPartners() en VisualPartnerFilter, obteniendo la lista de datos de los estudiantes
-Envía como respuesta los datos - getEmailsVirtualPv():
-Recibe la petición de server.js
-Llama al método getEmailsWithCertification en VisualPartnerFilter, obteniendo la lista de emails de los estudiantes con "Certification"
-Envía como respuesta el array - getStudentsVPCredits():
-Recibe la petición de server.js
-Llama al método getStudentsWith500Credits en VisualPartnerFilter, obteniendo la lista de datos de estudiantes cuyos valor en "Credits" sea mayor que 500
-Envía como respuesta los datos filtrados - Server
- Responde la solicitudes del usuario
classDiagram
class VisualPartnerFilter{
+static getVirtualPartners()
+static getEmailsWithCertification()
+static getStudentsWith500Credits()
}
classDiagram
class VisualPartnerController{
+static getStudentsVirtualP()
+static getEmailsVirtualPv()
+static getStudentsVPCredits()
}
Contar con NPM instalado
- Clonar el repo al ordenador
git clone https://github.com/ErickMontesDK/VIsual-Thinking-Api
- Instalar el paquete y dependencias en la carpeta de proyecto
npm install
La API se encuentra accesible para cualquier persona en un servidor, pero si quiere revisar el código y tener un servidor local, lea la siguiente información:
Las rutas o "endpoints" declaradas para consulta de información son las siguientes
Primero es iniciar el servidor npm run server
- Datos de estudiantes:
Ingresar url
http://localhost:3000/virtualpartners/students
Devuelve la lista de datos de todos los estudiantes de VirtualPartners
- Emails de estudiantes con certificado
Ingresar url
http://localhost:3000/virtualpartners/emails/certificate/
Devuelve la lista de emails de todos los estudiantes de VirtualPartners que tengan certificación "haveCertification:true".
- Estudiantes con creditos mayores a 500
Ingresar url
http://localhost:3000/virtualpartners/students/fullcredits
Devuelve la lista de estudiantes de VirtualPartners cuyo valor de credits sea mayor a 500
La API se encuentra en el URL: https://stark-inlet-21661.herokuapp.com/
. Ahí mismo estan los links hacia las opciones de consulta.