GithubHelp home page GithubHelp logo

skyzerozx / sky-scrapper-app Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 1.0 1.07 MB

Awesome Scrapper App With Angular

License: MIT License

Dockerfile 0.41% TypeScript 48.37% HTML 34.62% SCSS 14.34% CSS 0.61% JavaScript 1.66%
angular docker fingerprint nginx pwa webauthn tailwindcss sonarqube

sky-scrapper-app's Introduction

Sky Scrapper App

Es el modulo web del sistema de API Rest Sky-Scrapper-API en NestJS Para comprar precios de las principales tiendas de mangas en Perú haciendo uso de graficos de variaciones de precios diarios con alertas de cambio de precios

Adicionalmente funciona como PWA(Progresive Web App) que puede integrarse en cualquier dispositivo movil

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.

Puede visualizar una Demo del Proyecto en el siguiente enlace : https://sky-scrapper.skyzerozx.com

Mira Deployment para conocer como desplegar el proyecto.

Pre-requisitos 📋

Software requerido

NodeJS >= 14.X
NPM >= 8.X
AngularCli >= 14.X

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 configurar la ruta del API que consumira nuestro proyecto en el archivo "src/environments/environment.ts" campo API_URL

Para ejecutar un servidor de pruebas local usar el comando donde "PUERTO" sera el puerto donde deseamos ejecutar el proyecto , por default ng serve ejecuta el puerto 4200

ng serve --port [PUERTO]

Dirigirse a la ruta http://localhost:4200/#/login/ se tendra la pantalla de Login del sistema

Puede visualizar una demo en funcionamiento en el siguiente video que detalla los diferentes modulos

Untitled.mp4

Ejecutando como PWA 👨🏻‍💻

Para ejecutar como PWA(Progressive Web App) , previamente debe tenerse instalado la libreria http-serve

npm install --global http-server

Una vez instalada proceder a ejecutar el siguiente comando , que nos permite ejecutar en entorno local nuestra PWA

npm run start-pwa

Este comando se encuentra configurado en el archivo package.json de la raiz del proyecto por default ejecuta el puerto 8080

La PWA se encuentra configurada para ejecutarse en la vista de Login si no se esta logeado

Se cuenta con soporte de notificaciones Push integrado tanto para escritorio como dispositivos moviles

Se creo el archivo custom-service-worker.js para la gestion de evento de notificaciones personalizado

Despliegue 📦

Build

Previamente configurar la ruta del API que consumira nuestro proyecto en el archivo src/environments/environment.prod.ts campo API_URL

Para realizar el despligue a produccion del proyecto ejecutar el siguiente comando

ng build --configuration production

El cual creara la carpeta "dist" en la raiz de nuestro proyecto el cual podemos desplegar en cualquier servidor que ejecute HTML CSS y JS

A su vez en un hosting con certificado HTTPS se podra ejecutar como una PWA que se podra "instalar"

Docker

Para desplegar el proyecto mediante Docker se tiene los archivos Dockerfile y docker-compose.prod.yaml, los cuales tienen preconfigurado la imagen y dependencias necesarias para levantar el proyecto, se utilizo como base un servidor web Nginx

Para construir la imagen y ejecutarla tenemos el siguiente comando

Ejecutar el siguiente comando en la raiz del proyecto

 docker-compose -f docker-compose.prod.yaml up --build

Docker 1

Docker 2

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

 docker-compose -f docker-compose.prod.yaml up

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 Cobertura en SonarQube

SonarQube 1

Performance

Haciendo uso de la herramienta https://pagespeed.web.dev/ , se evaluo el tiempo de carga y renderizado por primera vez de la web

Obtuviendo un puntaje de 93 en rendimiento

Performance PageSpeed

Construido con 🛠️

Las herramientas utilizadas son:

  • Angular - El Framework para Desarrollo Web
  • NPM - Manejador de dependencias
  • Docker - Para el despliegue de aplicaciones basado en contenedores
  • Nginx - Servidor de Proxy Inverso ligero
  • TailwindCSS -Framework de CSS de código abierto​ para el diseño de páginas web
  • Visual Studio Code - Editor de Codigo
  • SonarQube - Evaluacion de codigo on premise
  • Prettier - Formateador de Codigo
  • TabNine - Autocompletador de Codigo
  • WebAuthn - Estándar web del proyecto FIDO2 de la Alianza FIDO

Versionado 📌

Usamos GIT para el versionado.

Autor✒️

Licencia 📄

Este proyecto está bajo la Licencia - mira el archivo LICENSE.md para detalles

sky-scrapper-app's People

Contributors

skyzerozx avatar

Watchers

 avatar  avatar

Forkers

gohunter

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.