{"id":31651393,"url":"https://github.com/skyzerozx/sky-scrapper-app","last_synced_at":"2026-04-13T13:02:34.938Z","repository":{"id":153088708,"uuid":"590236180","full_name":"SkyZeroZx/Sky-Scrapper-App","owner":"SkyZeroZx","description":"Awesome Scrapper App With Angular","archived":false,"fork":false,"pushed_at":"2023-05-29T01:01:51.000Z","size":1100,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-25T17:06:28.116Z","etag":null,"topics":["angular","docker","fingerprint","nginx","pwa","sonarqube","tailwindcss","webauthn"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SkyZeroZx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-18T00:06:17.000Z","updated_at":"2023-01-19T03:29:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"55d0525a-f722-47fc-9278-f018f6e91cb8","html_url":"https://github.com/SkyZeroZx/Sky-Scrapper-App","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SkyZeroZx/Sky-Scrapper-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyZeroZx%2FSky-Scrapper-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyZeroZx%2FSky-Scrapper-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyZeroZx%2FSky-Scrapper-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyZeroZx%2FSky-Scrapper-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SkyZeroZx","download_url":"https://codeload.github.com/SkyZeroZx/Sky-Scrapper-App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkyZeroZx%2FSky-Scrapper-App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31753551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","docker","fingerprint","nginx","pwa","sonarqube","tailwindcss","webauthn"],"created_at":"2025-10-07T08:54:59.847Z","updated_at":"2026-04-13T13:02:34.929Z","avatar_url":"https://github.com/SkyZeroZx.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eSky Scrapper App\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n Es el modulo web del sistema de API Rest\n \u003ca href=\"https://github.com/SkyZeroZx/Sky-Scrapper-API\" target=\"_blank\"\u003e Sky-Scrapper-API en NestJS \u003c/a\u003e \n  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\n \u003c/p\u003e\n\n_Adicionalmente funciona como PWA(Progresive Web App) que puede integrarse en cualquier dispositivo movil_\n\n\u003csmall\u003e\nNota : Este es un proyecto con fines educativos sin fines de lucro\n\u003c/small\u003e\n\n\n## :ledger: Index\n\n- [Pre-Requisitos](#pre-requisitos-)\n- [Instalación](#instalación-)\n- [PWA](#ejecutando-como-pwa-)\n- [Despligue](#despliegue-)\n  - [Build](#build)\n  - [Docker](#docker)\n- [Analisis de Codigo](#analisis-de-codigo-)\n- [Performance](#performance)\n- [Construido](#construido-con-)\n\n## Comenzando 🚀\n\n_Estas instrucciones te permitirán obtener una copia del proyecto en funcionamiento en tu máquina local para propósitos de desarrollo y pruebas._\n\nPuede visualizar una Demo del Proyecto en el siguiente enlace : https://sky-scrapper.skyzerozx.com\n\nMira **Deployment** para conocer como desplegar el proyecto.\n\n### Pre-requisitos 📋\n\n_Software requerido_\n\n```\nNodeJS \u003e= 14.X\nNPM \u003e= 8.X\nAngularCli \u003e= 14.X\n```\n\n_Software opcional_\n\n```\nVisual Studio Code ( O el editor de su preferencia)\n```\n\n### Instalación 🔧\n\n_Para ejecutar un entorno de desarrollo_\n\n_Previamente ejecutar el comando en la terminal para descargar \"node_modules\" para el funcionamiento del proyecto_\n\n```\nnpm install\n```\n\n_Previamente configurar la ruta del API que consumira nuestro proyecto en el archivo **\"src/environments/environment.ts\"** campo **API_URL**_\n\n_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_\n\n```\nng serve --port [PUERTO]\n```\n\n_Dirigirse a la ruta http://localhost:4200/#/login/ se tendra la pantalla de Login del sistema_\n\n_Puede visualizar una demo en funcionamiento en el siguiente video que detalla los diferentes modulos_\n\n\nhttps://user-images.githubusercontent.com/73321943/213350821-224f0e70-c8fa-42a9-a4e0-38b1531f3ae3.mp4\n\n\n\n## Ejecutando como PWA 👨🏻‍💻\n\n_Para ejecutar como PWA(Progressive Web App) , previamente debe tenerse instalado la libreria http-serve_\n\n```\nnpm install --global http-server\n```\n\n_Una vez instalada proceder a ejecutar el siguiente comando , que nos permite ejecutar en entorno local nuestra PWA_\n\n```\nnpm run start-pwa\n```\n\n_Este comando se encuentra configurado en el archivo *package.json de la raiz del proyecto por default ejecuta el puerto 8080*_\n\n_La PWA se encuentra configurada para ejecutarse en la vista de Login si no se esta logeado_\n\n_Se cuenta con soporte de notificaciones Push integrado tanto para escritorio como dispositivos moviles_\n\n_Se creo el archivo `custom-service-worker.js` para la gestion de evento de notificaciones personalizado_\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"docs/pwa/pwa-2.jpg\" width=\"327\" height=\"421\" /\u003e\n\u003c/p \u003e\n\n\n## Despliegue 📦\n\n### Build\n\n_Previamente configurar la ruta del API que consumira nuestro proyecto en el archivo src/environments/environment.prod.ts campo API_URL_\n\n_Para realizar el despligue a produccion del proyecto ejecutar el siguiente comando_\n\n```\nng build --configuration production\n```\n\n_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_\n\n_A su vez en un hosting con certificado HTTPS se podra ejecutar como una PWA que se podra \"instalar\"_\n\n### Docker\n\n_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_\n\n_Para construir la imagen y ejecutarla tenemos el siguiente comando_\n\n_Ejecutar el siguiente comando en la raiz del proyecto_\n\n```\n docker-compose -f docker-compose.prod.yaml up --build\n```\n\n![Docker 1](/docs/docker/docker-1.png)\n\n![Docker 2](/docs/docker/docker-2.png)\n\n_En caso de requerir volver a ejecutar el contenedor del proyecto previamente creado ejecutar el comando:_\n\n```\n docker-compose -f docker-compose.prod.yaml up\n```\n\n## Analisis de Codigo 🔩\n\n_**Pre requisitos**_\n\n_En la raiz del proyecto se tiene el archivo *sonar-project.properties* el cual tiene las propiedades necesarias para ejecutarlo sobre un SonarQube_\n\n_Configurar los apartados : *sonar.host.url* , *sonar.login* *sonar.password* con los datos de su instancia correspondiente o usar SonarCloud con su token correspondiente_\n\n```\nSonaqube \u003e= 9.X\n```\n\n![SonarQube Properties](/docs/sonar/sonar-properties.png)\n\n_Las pruebas fueron realizas sobre *SonarQube 9.8* para ejecutar el analisis de codigo ejecutar el comando para la instancia local:_\n\n```\nnpm run sonar\n```\n\n_Reporte de Cobertura en SonarQube_\n\n![SonarQube 1](/docs/sonar/sonarqube-1.png)\n\n\n## Performance\n\n_Haciendo uso de la herramienta *https://pagespeed.web.dev/* , se evaluo el tiempo de carga y renderizado por primera vez de la web_\n\n_Obtuviendo un puntaje de **93** en rendimiento_\n\n![Performance PageSpeed](/docs/performance/performance.png)\n\n## Construido con 🛠️\n\n_Las herramientas utilizadas son:_\n\n- [Angular](https://angular.io/docs) - El Framework para Desarrollo Web\n- [NPM](https://www.npmjs.com/) - Manejador de dependencias\n- [Docker](https://www.docker.com/) - Para el despliegue de aplicaciones basado en contenedores\n- [Nginx](https://www.nginx.com/) - Servidor de Proxy Inverso ligero\n- [TailwindCSS](https://tailwindui.com/) -Framework de CSS de código abierto​ para el diseño de páginas web\n- [Visual Studio Code](https://code.visualstudio.com/) - Editor de Codigo\n- [SonarQube](https://www.sonarqube.org/) - Evaluacion de codigo on premise\n- [Prettier](https://prettier.io/) - Formateador de Codigo\n- [TabNine](https://www.tabnine.com/) - Autocompletador de Codigo\n- [WebAuthn](https://webauthn.guide/) - Estándar web del proyecto FIDO2 de la Alianza FIDO\n\n## Versionado 📌\n\nUsamos [GIT](https://git-scm.com/) para el versionado.\n\n## Autor✒️\n\n- **Jaime Burgos Tejada** - _Developer_\n- [SkyZeroZx](https://github.com/SkyZeroZx)\n- Email : jaimeburgostejada@gmail.com\n\n## Licencia 📄\n\nEste proyecto está bajo la Licencia - mira el archivo [LICENSE.md](LICENSE.md) para detalles\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyzerozx%2Fsky-scrapper-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskyzerozx%2Fsky-scrapper-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskyzerozx%2Fsky-scrapper-app/lists"}