/VisualThinkingAPI

Ejercicio 5 Semana 4 Backend Launch X

Primary LanguageJavaScript

VisualThinkingAPI

Ejercicio 5 Semana 4 Backend Launch X

Este repo es un code challenge para la semana 4 de backend en launch X.

Instalación

Para instalar localmente este proyecto, copia el enlace del repositorio: Link repo ó dentro de la página del repo puedes dar clic en el botón de Code y despues dar clic en el botón de copiar: imagen Una vez que tengas el link del repo copiado, en tu línea de comandos/terminal corre el siguiente comando de git:

git clone https://github.com/DianaMagallanes/VisualThinkingAPI

Ya que has clonado el repo de manera local, se deben instalar las dependencias que utiliza el proyecto, para esto ejecuta:

npm install

Una vez que se terminan de instalar las dependencias necesarias, puedes correr el proyecto con el siguiente comando:

npm run server

En tu navegador entra a localhost:3000 y verifica que se muestre el siguiente mensaje: imagen

Requerimientos

  • Endpoint para consultar todos los estudiantes con todos sus campos.
  • Endpoint para consultar los emails de todos los estudiantes que tengan certificación.
  • Endpoint para consultar todos los estudiantes que tengan credits mayor a 500.

Dependencias

  • Jest versión 26.0.0 (Para realizar pruebas unitarias). Documentación
  • ESLint versión 8.14.0 (Para realizar corregir inconsistencias/errores en escritura). Documentación
  • Express versión 4.18.0 (Como server). Documentación

Versión de Node

v16.14.2 Documentación

Diseño de componentes

Estructura proyecto

  1. En la raiz de nuestro repo encontraremos 2 archivos json. El archivo visualPartners.json es donde se encontrara toda la información que estamos utilizando para nuestra API. El archivo visualPartnersTest.json contiene información a utilizar en las pruebas.

  2. En la carpeta lib tenemos:

    • Carpeta controllers contiene archivo: PartnerController.js donde se manda a PartnerService.js la información que Reader.js obtuvo, y que recibira la información ya modificada de acuerdo a las operaciones indicadas en PartnerService.js.
    • Carpeta services contiene archivo: PartnerService.js donde se realizaran las operaciones solicitadas en los requerimientos.
    • Carpeta utils contiene archivo: Reader.js donde se lee la información del archivo visualPartners.json.
    • Archivo server.js donde se hace la configuración del servidor express y se especifican los endpoints solicitados en los requerimientos. Aquí se recibe la información de PartnerController.js y se muestra en el endpoint indicado.
  3. En la carpeta test tenemos una estructura de archivos y carpetas que es un reflejo de la carpeta lib. En esta carpeta estan todos los archivos de pruebas realizadas.

  4. En la carpeta .github/worklows se encuentra el archivo test.yml que es donde se tiene el código que permite automatizar nuestras pruebas. Nota: se correran las pruebas automáticamente cada vez que hagamos un push a nuestro repo en github gracias a github actions: imagen

Ilustración estructura:

Créditos a CarloGilmar imagen

Endpoints

endpoint image
/v1/students
Toda la información de todos los estudiantes.
/v1/estudents/emails
Lista de correos de los estudiantes con certificación.
/v1/students/credits/
Estudiantes con más de 500 creditos.