Arquitectura y Seguridad
PWA construida con Vite + React 18 + TypeScript. Seguridad con cifrado AES-GCM, RLS en Supabase y datos encriptados en blockchain.
Seguridad
Cifrado AES-GCM para llaves y payloads (crypto.ts). RLS en Supabase para backups y tablas de proyectos. Control de acceso en rutas via PublicRoute/ProtectedRoute. Toasts para eventos criticos y logs en consola para fallos de red y parseo.
Stack Tecnologico Completo
Frontend
Vite como bundler. React 18 con TypeScript. TailwindCSS + Radix UI para componentes. Recharts para graficos. Zustand para estado global. TanStack Query para cache de IA. React Hook Form + Zod para formularios. Framer Motion para animaciones. React Router para navegacion SPA.
Supabase
Base de datos PostgreSQL con Row Level Security (RLS). Autenticacion nativa (signUp/signIn). Tablas: user_backups (datos generales), projects (colaboracion). Sync con resolucion de conflictos (SyncConflictModal: restore cloud / overwrite cloud). Cifrado de datos antes de guardar.
Gemini IA
8 modulos de IA con gemini-2.5-flash-lite: chatbot (Polo), predictor de ventas, facturador, reportes ejecutivos, posts sociales, sugeridor de categorias, generador de metas y planificador de agenda. API key gratuita sin tarjeta.
Blockchain
Hedera SDK para wallets y tokens (testnet). Ethers.js + Plume Network para PUSD. Pinata + IPFS para metadata de NFTs. Coleccion NFT por proyecto. Datos encriptados on-chain.
Estructura de Carpetas
src/
components/
ui/ # Radix + custom UI
dashboard/ # Widgets del dashboard
shared/ # Componentes reutilizables
pages/ # Vistas principales (React Router)
lib/
ai/ # 8 modulos de Gemini
chatbot.ts, salesPredictor.ts, invoiceGenerator.ts,
reportGenerator.ts, postGenerator.ts, categorySuggester.ts,
goalGenerator.ts, agendaPlanner.ts
blockchain/ # Hedera SDK, Ethers, Plume
crypto.ts # Cifrado AES-GCM
supabase.ts # Cliente y sync
store/ # Zustand stores
hooks/ # Custom hooks + TanStack Query
types/ # Interfaces TypeScriptSincronizacion de Datos
Los datos se persisten localmente (localStorage) y se sincronizan con Supabase. En caso de conflicto, se muestra el SyncConflictModal con dos opciones:
Restore Cloud
Descarga los datos de Supabase y sobreescribe los locales.
Overwrite Cloud
Sube los datos locales a Supabase sobreescribiendo los remotos.
Estructura de Proyectos Colaborativos
Los usuarios crean proyectos con departamentos predefinidos. Cada departamento tiene permisos especificos:
Recibe todos los ingresos. Aprueba presupuestos y co-aprueba cierres de ciclo.
Gestiona finanzas. Co-aprueba presupuestos y cierres de ciclo fiscal.
Gestiona miembros. Puede agregar trabajadores. Directores requieren aprobacion.
Cada departamento tiene wallet propia, presupuesto asignado y permisos granulares.
NFTs de Ciclo Fiscal
Al crear un proyecto se genera una coleccion NFT en Hedera. Al cerrar un ciclo fiscal (requiere aprobacion de Direccion + Economia), se mintea un NFT con los datos del ciclo como metadata encriptada, almacenada en IPFS via Pinata.
La metadata solo se puede descifrar dentro de Polaris, creando un registro inmutable y verificable pero privado. El historial muestra enlaces a IPFS y exploradores de blockchain.
Flujo de Presupuestos entre Departamentos
- 1Departamento solicita presupuesto con objetivo especifico
- 2Direccion recibe notificacion y revisa solicitud
- 3Economia co-aprueba la asignacion
- 4Fondos se transfieren a la wallet del departamento en blockchain
- 5Transaccion se registra encriptada en Hedera
Caching de IA (TanStack Query)
| Hook | staleTime |
|---|---|
| useSalesPrediction | 1 hora (3,600,000ms) |
| useSalesInsights | 4 horas |
| useSalesComparison | 4 horas |