Dashboard interactivo en tiempo real para visualizar cotizaciones de USDT (Binance P2P) construido con Angular 19.2.5
CotizacionesNg es el frontend de un sistema de monitoreo de cotizaciones de criptomonedas. Este proyecto funciona en conjunto con un backend en Go que consulta la API de CriptoYa, almacena los datos en SQLite y genera archivos JSON que son consumidos por esta aplicación Angular.
- 📊 Visualización de cotizaciones en tiempo real de USDT en Binance P2P
- 📈 Gráficos interactivos con histórico de precios
- 🔄 Actualización automática de datos desde el backend en Go
- 📱 Diseño responsive optimizado para todos los dispositivos
- 🎨 UI/UX moderna con Angular Material y SCSS
- Framework: Angular 19.2.5
- Lenguaje: TypeScript
- Estilos: SCSS
- Testing: Karma + Jasmine
Backend (cotizaciones)
- Lenguaje: Go
- Base de datos: SQLite
- Notificaciones: Telegram Bot
- Deploy: Docker + Kubernetes (MicroK8s)
- CI/CD: GitHub Actions
graph LR
A[CriptoYa API] -->|Fetch| B[Backend Go]
B -->|SQLite| C[Base de Datos]
B -->|Genera| D[docs/data.json]
B -->|Git Push| E[cotizaciones_ng]
E -->|Lee| D
E -->|Visualiza| F[Dashboard Angular]
B -->|Notifica| G[Telegram Bot]
-
Backend Go (job automático vía cron o GitHub Actions):
- Consulta la API de CriptoYa cada X minutos
- Guarda las cotizaciones en SQLite
- Genera archivo
docs/data.jsoncon los datos actualizados - Hace git pull/push en el repositorio
cotizaciones_ng - Envía notificaciones a Telegram
-
Frontend Angular (este proyecto):
- Lee el archivo
docs/data.jsongenerado por el backend - Renderiza los datos en componentes visuales
- Actualiza gráficos y tablas en tiempo real
- Se despliega automáticamente en GitHub Pages
- Lee el archivo
node >= 18.x
npm >= 9.x
Angular CLI 19.2.5# 1. Clonar el repositorio
git clone https://github.com/Programmercito/cotizaciones_ng.git
cd cotizaciones_ng
# 2. Instalar dependencias
npm install
# 3. Levantar servidor de desarrollo
ng serve
# 4. Abrir en el navegador
# Navega a http://localhost:4200/La aplicación se recargará automáticamente cuando modifiques los archivos fuente.
El backend en Go se ejecuta como un job programado que realiza las siguientes tareas:
El workflow .github/workflows/go.yaml se dispara automáticamente en cada push a main:
# Pasos del job:
1. 🌐 Consultar API de CriptoYa
2. 🗄️ Conectar a SQLite
3. 💾 Guardar cotización en BD
4. 📨 Enviar/Editar mensaje en Telegram
5. 🔄 Git pull forzado en cotizaciones_ng
6. 📝 Exportar cotizaciones a docs/data.json
7. 📤 Git commit & push a cotizaciones_ng
8. 🧹 Limpiar registros antiguos (>30 días)El backend genera docs/data.json con esta estructura (array de objetos):
[
{
"moneda": "USDT",
"cotizacion": 9.09,
"datetime": "2026-02-16 02:00:04",
"exchange": "binancep2p"
},
{
"moneda": "USDT",
"cotizacion": 9.1,
"datetime": "2026-02-16 07:15:01",
"exchange": "binancep2p"
}
]Campos:
moneda: Tipo de criptomoneda (USDT)cotizacion: Precio de compra (bid) en BOBdatetime: Timestamp del registro (formato:YYYY-MM-DD HH:MM:SS)exchange: Exchange de origen (binancep2p)
# Servidor de desarrollo
ng serve
# Generar componente
ng generate component nombre-componente
# Ver ayuda de scaffolding
ng generate --help# Ejecutar tests unitarios
ng test
# Ejecutar tests e2e
ng e2e# Build de desarrollo
ng build
# Build de producción
ng build --configuration production
# Los archivos se generan en dist/El proyecto se despliega automáticamente en GitHub Pages usando GitHub Actions.
# El frontend está disponible en:
https://programmercito.github.io/cotizaciones_ng/Para que el sistema funcione completamente:
-
Configurar el backend Go:
- Clonar cotizaciones
- Configurar variables de entorno (
TELEGRAM_BOT_TOKEN, etc.) - Ejecutar el job (manual o automático)
-
El backend automáticamente:
- Actualiza el archivo
docs/data.jsonen este repo - Hace commit y push de los cambios
- Dispara el deploy del frontend
- Actualiza el archivo
Este proyecto es de código abierto y está disponible bajo la licencia MIT.
Hecho con ❤️ y Angular
⭐ Si te gusta el proyecto, no olvides darle una estrella!