/VIsual-Thinking-Api

Ejercicio 5 Semana 4-LaunchX Node JS. API de una lista de estudiantes, puede consultarla en https://visual-thinking-api.herokuapp.com/

Primary LanguageJavaScript

Visual Thinking Api

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/

Caracteristicas de proyecto

Dependencias necesarias

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

Estrutura

flowchart TD
    virtualpartners.Json-->Reader-->VisualPartnerFilter-->VisualPartnerController-->Server
Loading

Donde:

Reader
Interpreta el archivo Json y almacena envía sus datos
classDiagram
class Reader{
    +static returnFile(path)
}
Loading
  • 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
VisualPartnerFilter
Procesa los datos interpretados por "Reader" y filtra la información de acuerdo a los requisitos solicitados
classDiagram
class VisualPartnerFilter{
    +static getVirtualPartners()
    +static getEmailsWithCertification()
    +static getStudentsWith500Credits()
}
Loading
  • 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.
classDiagram
class VisualPartnerController{
    +static getStudentsVirtualP()
    +static getEmailsVirtualPv()
    +static getStudentsVPCredits()
}
Loading
  • 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

Requisitos

Contar con NPM instalado


Instalación

  1. Clonar el repo al ordenador
    git clone https://github.com/ErickMontesDK/VIsual-Thinking-Api
  2. Instalar el paquete y dependencias en la carpeta de proyecto
    npm install

Consulta

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:

Consulta en servidor local

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

Consulta servidor remoto

La API se encuentra en el URL: https://stark-inlet-21661.herokuapp.com/. Ahí mismo estan los links hacia las opciones de consulta.