This project was generated using Angular CLI version 19.2.13.
- Node.js 18+
- Angular CLI
Para correr el proyecto de manera local:
ng servePara construir el proyecto:
ng buildThis will compile your project and store the build artifacts in the dist/ directory. By default, the production build optimizes your application for performance and speed.
ng build --configuration production npx http-server -p 8080 ./dist/frontend
Angular Material (ng add @angular/material) [https://material.angular.dev/guide/getting-started] Libreria propia de angular usada para algunos componentes como inputs, selects y dialogs
Libreria de angular para la construcción de la PWA, la cual realiza modificaciones en los archivos, añadiendo aquellos relacionados con service worker
npm install dexie [https://dexie.org/docs/Tutorial/Angular]
Biblioteca JavaScript que facilita la interacción con la API de IndexedDB en Angular
Antes de ejecutar el servidor, primero instalar los paquetes de node con (npm i)
El funcionamiento de pwa solo se logra primero construyendo la app con (ng build --configuration=production) y ejecutando un server con ayuda de http-server (npx http-server -p 8081 -c-1 dist/marketplace/browser) si no esta instalado generara error
- Angular: como frontend PWA
- Dexie.js: wrapper para IndexedDB
- Service Worker: para caché offline
- Node.js + Express: backend REST API
- Angular permite crear una PWA con soporte nativo para service workers.
- Dexie simplifica el manejo de IndexedDB para guardar datos offline.
- Node.js con Express es ligero y fácil de integrar con Angular.
- Cuando no hay conexión, las peticiones (POST/PUT/DELETE) se guardan en IndexedDB con Dexie.
- Al detectar que el usuario volvió a estar online, las peticiones se envían automáticamente al backend.
- Si la petición se envía correctamente, se borra de la base local.
- Se muestra una notificación al usuario indicando qué se envió.
Se usa IndexedDB vía Dexie para guardar:
- URL
- Método
- Cuerpo de la petición
- Descripción legible para mostrar en notificaciones
- El
syncServiceintenta reenviar las peticiones automáticamente al reconectar. - Si alguna falla, se mantiene en la base hasta que sea exitosa.
- Se puede forzar sincronización con un botón.
Ver carpeta anexos.
Ver anexos