API Procesadora de textos! Realizado por Sebastián Kravetz para Banco Internacional. Este proyecto se compone de dos microservicios: 1) Api procesadora de textos (Node.js); 2) Front-End (React.js/Vite)
Stack utilizado:
- NodeJS
- Express.js
- React.js (front-end v2)
- Handlebars.js (front-end v1)
- Microservicio word-counter-challenge
- Java 11
- Gradle (wrapper incluido)
- NodeJS 16.15.0 (carpeta "expressjs_api")
- Paquetes de NPM se instalarán con el primer npm install
- Vite 2.9.9 (carpeta "vite_frontend")
- Paquetes NPM se instalarán con el primer yarn install
- Clonar el repositorio de word-counter-challenge y ejecutar:
./gradlew bootRun
- Clonar este repositorio en un entorno local. Para instalar las dependencias de la API desarrollada en NodeJS, ejecutar en el directorio raíz:
cd expressjs_api/
npm install
- Para ejecutar la API (Node.js) en modo producción (directorio "expressjs_api"):
npm start
- Para ejecutar la API (Node.js) en modo desarrollo (directorio "expressjs_api"):
npm run dev
- Para instalar las dependencias del entorno de desarrollo del front-end con React, desde el directorio raíz:
cd vite_frontend/
yarn install
- Para ejecutar el entorno de desarrollo del frontend de React con Vite (directorio "vite_frontend"):
yarn dev
- Para generar un build de producción del frontend con React (directorio "vite_frontend"):
yarn build
NOTA: Es muy importante que tanto el microservicio ejecutado en el paso 1 como el servidor ejecutado en el paso 3 corran de forma paralela, ya que se comunican entre sí.
Se ha proporcionado un archivo .env.example para la configuración de las variables de entorno, en este proyecto en específico para la configuración de los puertos de escucha del servidor de acuerdo al modo de ejecución (producción ó desarrollo), se sugiere renombrar este archivo a .env para que el servidor pueda utilizar las variables en él declaradas.
-
Para la API construida en NodeJs y el frontend construido con motor de plantillas (Handlebars): En modo producción, la aplicación escuchará en el puerto 3000
http://localhost:3000
En modo desarrollo, la aplicación escuchará en el puerto 1337
http://localhost:1337
-
Para el entorno de desarrollo Vite del frontend construido con React:
http://localhost:3001
Se ha incorporado una suite de tests con JEST para los componentes, helpers y hooks del frontend con React.
PD: Se están incorporando nuevos tests de forma incremental
Sobre el directorio raíz, ejecutar:
cd vite_frontend/
yarn test
Una vez dentro de la suite, para filtrar por algún componente en especial, puede pulsar la tecla [p] y filtrar por el nombre del componente.
Para obtener el reporte de test coverage:
cd vite_frontend/
yarn test-coverage
Una completa documentación de la API en sus versiones v1 (stable) y v2 (alpha) se encuentra en la siguiente ruta disponible al ejecutar el servidor:
(en producción) http://localhost:3000/docs
(en desarrollo) http://localhost:1337/docs
Allí encontrará el detalle de los endpoints, esquema de datos entregado y filtros disponibles.
- Se respetó la lógica de aleatoreidad del texto, por lo que no se implementó ningún tipo de persistencia de datos.
- En la versión 2 (v2) de la API se implementa una paginación de la misma con filtros opcionales, pero ya que no hay una persistencia de datos al cambiar de página el texto procesado también cambia, por lo que ésta sólo queda para fines de demostración de la implementación.
- Al no existir un criterio preciso para considerar las palabras (articulos, sustantivos, conjunciones), se optó por implementar un filtro de longitud de palabra por cantidad de carácteres que la conforman, como se detalla en la documentación de la API.
- ¡Seguimos trabajando! 🤘