ui-angular
SPA Angular 20. Dashboard de Crimoo para gestión de GTMs, CRM, conversiones offline y analytics.
Stack
- Framework: Angular 20 (Standalone Components)
- Estado: BehaviorSubject + Angular Signals (sin NgRx)
- Auth: HTTP-only cookies con
withCredentials: true - i18n: @ngx-translate/core (ES, EN, PT-BR)
Módulos principales
| Módulo | Ruta | Descripción |
|---|---|---|
| GTM | /gtms, /gtms/:id/settings | Crear/configurar contenedores, custom loader |
| CRM | /crm, /crm/contactos, /crm/deals | Contactos, Kanban de deals, timeline |
| Conversiones Offline | /conversiones-offline | Credenciales, triggers, historial |
| Analytics Dashboard | /dashboard | Widgets editables, filtros globales |
| Workspaces | /workspaces | Multi-tenancy, miembros, permisos |
| Copilot | /crimoo-copilot | Chat IA con Google Gemini |
| Billing | /plans-dashboard, /billing/* | Planes y checkout Stripe |
Estado global (sin NgRx)
Flujo de onboarding
Servicios y sus endpoints
| Servicio Angular | Endpoints principales |
|---|---|
Auth | /api/auth/login, /api/auth/me, /api/auth/google |
GtmService | /api/gtm, /api/gtm/:id, /api/gtm/:id/custom-loader |
CrmService | /api/contacts, /api/contacts/:id/timeline |
OfflineConversionsService | /api/conversions/credentials, /api/conversions/triggers, /api/conversions/events |
AnalyticsService | /api/analytics/:workspaceId/query, /api/analytics/:workspaceId/widget-data |
WorkspaceService | /api/workspaces, /api/workspaces/:id/members |
BillingService | /api/subscriptions/checkout, /api/subscriptions/status |
GtmLoaderService | Carga dinámica de crimoo.js desde custom domain |
Custom GTM Loader desde el frontend
Deployment
ui-angular se despliega en Firebase Hosting (proyecto: crimoo-bf067).
URLs de producción
| Ambiente | URL |
|---|---|
| Producción | https://crimoo-bf067.web.app / https://crimoo-bf067.firebaseapp.com |
| Local | http://localhost:4200 |
API URL
En producción, environment.prod.ts apunta a:
apiUrl: 'https://api.crimoo.com'
El dominio api.crimoo.com está en Cloudflare (proxied) y resuelve al gtm-proxy de la VPS, que rutea los requests /api/* a node-api.
Deploy
cd d:/work/ui-angular
ng build --configuration production
firebase deploy --only hosting --project crimoo-bf067