¿Necesitas ayuda? Escriba su cadena de búsqueda. Se requiere un mínimo de 4 caracteres.

Abrir lista de categorías

Stack Tecnologico del Ecosistema IDEA

Nivel: N5 – Gerencia / Desarrollo
Fuente de verdad del stack tecnologico del Ecosistema IDEA. Toda decision de tecnologia debe pasar por este documento. Cualquier instructivo que mencione una tecnologia debe referenciar aqui.

1. Vision general

El ERP de IDEA no es un software empaquetado (como SAP u Odoo). Es un ecosistema construido a medida usando tecnologias modernas de codigo abierto, conectadas entre si a traves de APIs y una base de datos centralizada.

┌─────────────────────────────────────────────────────┐
│                    USUARIO                          │
│          (navegador web o app movil)                │
└──────────────────────┬──────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────┐
│              FRONTEND (Next.js)                     │
│    Pantallas, formularios, dashboards, reportes     │
│    Desplegado en: Vercel o Cloud Run                │
└──────────────────────┬──────────────────────────────┘
                       │ API calls
┌──────────────────────▼──────────────────────────────┐
│              BACKEND (Supabase)                     │
│  ┌──────────┐  ┌──────────┐  ┌──────────────────┐  │
│  │   Auth   │  │ Database │  │ Edge Functions   │  │
│  │ (login)  │  │(PostgreSQL│  │ (logica negocio) │  │
│  └──────────┘  └──────────┘  └──────────────────┘  │
│  ┌──────────┐  ┌──────────┐  ┌──────────────────┐  │
│  │ Storage  │  │ Realtime │  │      RLS         │  │
│  │(archivos)│  │(en vivo) │  │  (seguridad)     │  │
│  └──────────┘  └──────────┘  └──────────────────┘  │
└──────────────────────┬──────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────┐
│            INTELIGENCIA ARTIFICIAL                  │
│         Vertex AI (Google Cloud)                    │
│     Agentes, chatbots, function calling             │
└──────────────────────┬──────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────┐
│            SERVICIOS EXTERNOS                       │
│  Tellbid (WhatsApp) │ WooCommerce │ Google Drive    │
└─────────────────────────────────────────────────────┘

2. Stack completo

Capa Tecnologia Version Que hace Por que esta
Frontend Next.js (App Router) 14+ Toda la interfaz visual: pantallas, formularios, tablas, dashboards Framework lider de React. Server Components = mas rapido. SEO nativo
Componentes UI shadcn/ui latest Botones, inputs, modales, tablas, tooltips — todos los elementos visuales Componentes premium, accesibles, personalizables. No es dependencia, se copia al proyecto
Estilos Tailwind CSS 3.4+ Todo el CSS del proyecto: colores, espaciados, responsive, dark mode Utility-first = rapido de escribir, consistente, facil de mantener
Auth Supabase Auth Login, registro, recuperacion de contrasena, OAuth (Google) Integrado con la DB. Maneja sesiones, tokens, refresh automatico
Base de datos PostgreSQL (via Supabase) 15+ Todas las tablas del ERP: usuarios, pedidos, finanzas, academico SQL maduro, relacional, con Foreign Keys y vistas. Es el estandar
Seguridad DB Row Level Security (RLS) Controla que datos puede ver/editar cada usuario segun su rol Seguridad a nivel de base de datos. Ni el frontend ni el backend pueden saltarsela
API / Backend Supabase Edge Functions Deno Logica de negocio que no puede ir en el frontend: calculos, validaciones, integraciones Serverless: se ejecuta solo cuando se necesita. Sin servidor propio
Tiempo real Supabase Realtime Actualizaciones en vivo: notificaciones, chat, cambios de datos sin recargar WebSockets integrados. Ideal para alertas y chat del asistente IA
Almacenamiento Supabase Storage + Google Drive Archivos de usuarios: fotos, documentos, certificados, PDFs Storage para archivos ligeros. Drive para archivos pesados y compartidos
IA Vertex AI (Google Cloud) Gemini Asistente inteligente: chatbot, respuestas, function calling Modelos Gemini de Google. Escalable, multilenguaje, con tools/functions
Mensajeria Tellbid WhatsApp Business: envio de alertas, chatbot, atencion al cliente Proveedor local venezolano. Webhook para recibir y responder mensajes
E-commerce WooCommerce Tienda online actual (Aerotienda). Version previa al ERP — sera derogada cuando el modulo Comercial (Nucleo 2) este activo ⚠️ Sistema legacy pre-ERP. Solo se mantiene durante la transicion
Hosting frontend Vercel o Cloud Run Donde vivira la aplicacion ERP. Deploy automatico desde Git. Aun no desplegado Vercel = optimizado para Next.js. Cloud Run = mas control. Se define al iniciar Fase 1
Hosting docs WordPress (cPanel/WHM) 6.x Base de conocimiento e instructivos. Version previa al ERP — se mantiene como herramienta de produccion para el disenador del ERP ⚠️ Sistema pre-ERP. Permanece activo para documentacion interna y publicacion de instructivos
Control de codigo Git Versionado de todo el codigo fuente Estandar de la industria. Historial, branches, colaboracion

3. Base de datos: logica y relaciones

3.1 Los 8 Nucleos

La base de datos se organiza en 8 Nucleos (grandes categorias). Cada Nucleo agrupa las tablas relacionadas a un area del negocio. El documento completo esta en la Arquitectura Global de Datos.

Nucleo Area Tabla maestra Tablas satelite (ejemplos)
1 Usuarios y Perfiles public.profiles metadata_instructores, expedientes_inac, historial_academico
2 Comercial, Marketing, CRM catalogo_maestro, pedidos lista_precios, registro_comisiones, suscripciones
3 Logistico activos_fijos inventario_consumibles, codigos_barras
4 Produccion y Operaciones servicios_activados cronogramas, evaluaciones, ordenes_reparacion
5 Finanzas compromisos cuotas, pagos, cuentas_bancarias
6 Documental expedientes documentos, certificados, archivos
7 RRHH empleados nomina, evaluaciones_desempeno, contratos
8 Soporte e Infraestructura tickets logs_auditoria, configuracion_sistema

3.2 La Celula Madre

Regla fundamental: La tabla public.profiles es la Celula Madre del ERP. Ninguna tabla en ningun Nucleo puede referenciar a una persona sin que esa persona exista primero en profiles. Si cambias un dato aqui, se refleja en todos los modulos automaticamente.

3.3 Como se relacionan las tablas

Las tablas se conectan con Foreign Keys (llaves foraneas). Es el equivalente a los «Linked Records» de Airtable, pero mas potente:

Concepto En Airtable En Supabase (PostgreSQL) Ejemplo
Conexion entre tablas Linked Record Foreign Key (FK) pedidos.user_id → profiles.id
Ver datos filtrados View Vista SQL + RLS «Solo ver MIS pedidos»
Dato calculado Formula field Computed column / View Total de deuda = SUM(cuotas pendientes)
Tabla contenedora Base / Workspace Schema (public) Todas las tablas viven en «public»
Seguridad Share view / Restricted RLS policies «Un alumno solo ve SUS datos»

3.4 Diagrama de relaciones central

                         ┌─────────────────┐
                         │  public.profiles │ ◄── CELULA MADRE
                         │  (Nucleo 1)      │
                         └────────┬─────────┘
                                  │
          ┌───────────┬───────────┼───────────┬───────────┐
          │           │           │           │           │
    ┌─────▼─────┐ ┌───▼───┐ ┌────▼────┐ ┌────▼────┐ ┌───▼────┐
    │  pedidos  │ │cuotas │ │expedient│ │cronogram│ │tickets │
    │(Nucleo 2) │ │(Nuc 5)│ │(Nuc 6)  │ │(Nuc 4)  │ │(Nuc 8) │
    └─────┬─────┘ └───┬───┘ └────┬────┘ └────┬────┘ └────────┘
          │           │          │            │
    ┌─────▼─────┐ ┌───▼───┐ ┌───▼────┐ ┌────▼─────┐
    │ catalogo  │ │ pagos │ │ docs   │ │evaluacion│
    │ maestro   │ │       │ │ archiv │ │  notas   │
    └───────────┘ └───────┘ └────────┘ └──────────┘

Regla: Todas las flechas siempre apuntan a profiles. Un pedido tiene un user_id, una cuota tiene un user_id, un expediente tiene un user_id. Profiles es el centro de todo.

3.5 Row Level Security (RLS)

RLS es el sistema de seguridad de la base de datos. Funciona asi:

Regla Que significa Ejemplo
SELECT (leer) Quien puede VER los datos Un alumno solo ve SUS notas. Un coordinador ve las de SU grupo
INSERT (crear) Quien puede AGREGAR datos Solo RRHH puede crear empleados. Solo Admin puede crear proveedores
UPDATE (editar) Quien puede MODIFICAR datos Un alumno puede editar su foto y telefono, pero NO su cedula
DELETE (borrar) Quien puede ELIMINAR datos Nadie borra. Se marca como «Inactivo». Los datos se preservan siempre

4. Estructura del codigo fuente

Todo el codigo vive en F:\Ecosistema ERP\web\. Estructura documentada en el Instructivo de Estructura Frontend:

web/
├── src/
│   ├── app/                    ← Paginas (cada carpeta = una URL)
│   │   ├── page.tsx            ← Login
│   │   ├── dashboard/          ← Mi Panel
│   │   ├── perfil/             ← Mi Perfil
│   │   ├── finanzas/           ← Mis Finanzas
│   │   ├── academico/          ← Mi Academico
│   │   └── ...
│   ├── components/             ← Piezas reutilizables (botones, cards, tablas)
│   ├── lib/
│   │   ├── supabaseClient.ts   ← Conexion a la base de datos
│   │   ├── vertexAi.ts         ← Conexion a la IA
│   │   └── driveSync.ts        ← Subida de archivos a Drive
│   └── styles/                 ← Estilos globales
├── public/                     ← Imagenes, logos, iconos
└── package.json                ← Dependencias del proyecto

5. Referencia cruzada

Documento Relacion con este
Arquitectura Global de Datos Detalle de los 8 Nucleos y todas las tablas
Estructura Frontend (Next.js) Estructura de carpetas del codigo
Instructivo Maestro de Usuarios Normas del Nucleo 1 (profiles)
Estructura General del ERP Vision macro del ecosistema
Agentes Inteligentes Vertex AI, function calling
Config WordPress para Antigravity Publicacion de docs desde el agente

Centro de soporte