Skip to content

Scrapper Web to scrapping web pages manga to compare the best price in Peru

License

Notifications You must be signed in to change notification settings

SkyZeroZx/Sky-Scrapper-API

Repository files navigation

Nest Logo

Sky Scrapper API NestJS

Es el API Rest y Scrapper para la WebApp/PWA Sky Scrapper APP para comparar precios de las principales tiendas ventas de mangas en Perú integrado con Web Authentication para el inicio de sesion passworless

Nota : Este es un proyecto con fines educativos sin fines de lucro

📒 Index

Comenzando 🚀

Estas instrucciones te permitirán obtener una copia del proyecto en funcionamiento en tu máquina local para propósitos de desarrollo y pruebas.

Pre-Requisitos 📋

Software requerido

NodeJS >= 16.X
NPM >= 8.X
NestJS >= 9.X
MongoDB >= 6.0

Software opcional

Visual Studio Code ( O el editor de su preferencia)

Instalación 🔧

Para ejecutar un entorno de desarrollo

Previamente ejecutar el comando en la terminal para descargar "node_modules" para el funcionamiento del proyecto

 npm install

Previamente a ejecutar el servidor en desarrollo configurar el archivo .env con las credenciales del servidor correos y base de datos , ejecutar :

 npm run start:dev

Dirigirse a la ruta http:https://localhost:3000/ donde tendra el Webhook levantado

Environment

Se tiene el archivo env.template , el cual posee un ejemplo de cada valor de las valores de entorno para poder desplegarlas en nuestro propio ambiente local o cloud

Env

Build

Para generar el build de producción del proyecto ejecutar el siguiente comando:

 npm run build

Despliegue 👨🏻‍💻

Para desplegar el proyecto mediante Docker tiene el archivo docker-compose.prod.yaml y la carpeta docker

Las cuales contienen los Dockerfile y dependencias necesarias para levantar el proyecto

Se dockerizo sobre un servidor de proxy inverso nginx el cual se expone en el puerto 80 por default

Para construir la imagen y ejecutarla tenemos el siguiente comando , el cual tambien tomara nuestras variable de entorno del archivo env

Ejecutar el siguiente comando en la raiz del proyecto

 docker compose  -f docker-compose.prod.yaml --env-file .env up -d --build

Docker 1

Docker 2

En caso de requerir volver a ejecutar el contenedor del proyecto previamente creado ejecutar el mismo comando

Analisis de Codigo 🔩

Pre requisitos

En la raiz del proyecto se tiene el archivo sonar-project.properties el cual tiene las propiedades necesarias para ejecutarlo sobre un SonarQube

Configurar los apartados : sonar.host.url , sonar.login sonar.password con los datos de su instancia correspondiente o usar SonarCloud con su token correspondiente

Sonaqube >= 9.X

SonarQube Properties

Las pruebas fueron realizas sobre SonarQube 9.8 para ejecutar el analisis de codigo ejecutar el comando para la instancia local:

npm run sonar

Reporte de SonarQube

SonarQube 1

Logger

Se integro winston para reemplazar el logger de NestJS para realizar seguimiento y conservacion de los logs segun sea requerido

En el archivo .env se tienen los siguientes apartados configurados por default:

APP_NAME=SKY_SCRAPPER
DATE_PATTERN=YYYY-MM-DD
MAX_SIZE=20m
MAX_DAYS=14d

Por default la carpeta donde se guardan los logs es LOG , el formato configurado es JSON

LOGGER 1

LOGGER 2

Construido con 🛠️

Las herramientas utilizadas son:

  • NestJS - El framework para construir aplicaciones del lado del servidor eficientes, confiables y escalables.
  • NPM - Manejador de dependencias
  • Docker - Para el despliegue de aplicaciones basado en contenedores
  • Puppeteer - Biblioteca de Node.js que proporciona una API de alto nivel para controlar Chrome/Chromium sobre el protocolo DevTools.
  • MongoDb - Motor de base de datos No SQL
  • SonarQube - Evaluacion de codigo on premise
  • Visual Studio Code - Editor de Codigo
  • Prettier - Formateador de Codigo
  • WebAuthn - Estándar web del proyecto FIDO2 de la Alianza FIDO
  • TabNine - Autocompletador de Codigo
  • Winston - Logger para NodeJS

Versionado 📌

Usamos GIT para el versionado.

Autor ✒️

About

Scrapper Web to scrapping web pages manga to compare the best price in Peru

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages