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 TypeScript

Sincronizacion 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:

Proyecto (Empresa)
DireccionWallet principal

Recibe todos los ingresos. Aprueba presupuestos y co-aprueba cierres de ciclo.

Economia

Gestiona finanzas. Co-aprueba presupuestos y cierres de ciclo fiscal.

Recursos Humanos

Gestiona miembros. Puede agregar trabajadores. Directores requieren aprobacion.

Ventas / Marketing / Logistica

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

  1. 1Departamento solicita presupuesto con objetivo especifico
  2. 2Direccion recibe notificacion y revisa solicitud
  3. 3Economia co-aprueba la asignacion
  4. 4Fondos se transfieren a la wallet del departamento en blockchain
  5. 5Transaccion se registra encriptada en Hedera

Caching de IA (TanStack Query)

HookstaleTime
useSalesPrediction1 hora (3,600,000ms)
useSalesInsights4 horas
useSalesComparison4 horas