# Setup del Workspace Esta guía detalla cómo configurar el workspace para desarrollo. ## Requisitos Previos ### Software Base | Herramienta | Versión Mínima | Propósito | |-------------|----------------|-----------| | **Git** | 2.30+ | Control de versiones | | **Node.js** | 18.x LTS o 20.x | Runtime JavaScript/TypeScript | | **npm** | 9.x+ | Gestor de paquetes Node | | **Python** | 3.10+ | Backend Python (Odoo, ML) | | **PostgreSQL** | 14+ | Base de datos | | **Docker** | 24.x+ | Contenedores (opcional) | ### Herramientas Opcionales | Herramienta | Propósito | |-------------|-----------| | **Miniconda/Conda** | Gestión de ambientes Python | | **pnpm** | Alternativa a npm (más rápido) | | **Docker Compose** | Orquestación de contenedores | | **kubectl** | Kubernetes CLI | ## Clonar el Workspace ### Clon Básico (sin submodules) ```bash git clone https://github.com/rckrdmrd/workspace.git cd workspace ``` ### Clon con Submodules (incluye Odoo) El workspace incluye Odoo como submodule. Para clonarlo completo: ```bash # Clonar con submodules (recomendado) git clone --recurse-submodules https://github.com/rckrdmrd/workspace.git cd workspace # Si ya clonaste sin --recurse-submodules git submodule update --init --recursive # Para un clone más rápido (sin historial completo de submodules) git submodule update --init --depth 1 ``` ## Estructura del Workspace ``` workspace/ ├── core/ # Núcleo reutilizable │ ├── catalog/ # Catálogo de patrones │ ├── modules/ # Módulos compartidos │ ├── orchestration/ # Sistema de agentes │ └── standards/ # Estándares técnicos │ ├── projects/ # Proyectos activos │ ├── erp-suite/ # Suite ERP empresarial │ ├── gamilit/ # Plataforma EdTech │ ├── trading-platform/ # Plataforma Trading │ ├── betting-analytics/ # Analytics Apuestas │ └── inmobiliaria-analytics/ │ ├── customers/ # Implementaciones por cliente │ └── template/ # Template para nuevos clientes │ ├── knowledge-base/ # Base de conocimiento │ ├── patterns/ # Patrones de diseño │ ├── guides/ # Guías de integración │ ├── lessons-learned/ # Lecciones aprendidas │ └── reference/ # Código de referencia │ └── odoo/ # Odoo 18.0 (submodule) │ ├── devtools/ # Herramientas de desarrollo │ ├── scripts/ # Scripts de automatización │ ├── templates/ # Templates de proyectos │ └── docker/ # Configuraciones Docker │ ├── orchestration/ # Orquestación del workspace │ ├── WORKSPACE-INDEX.md │ └── WORKSPACE-STATUS.md │ └── workspaces/ # Workspaces efímeros (temporal) ``` ## Setup por Proyecto ### Gamilit (EdTech Platform) ```bash cd projects/gamilit # Instalar dependencias del monorepo npm install # Backend cd apps/backend npm install cp .env.example .env # Configurar variables en .env # Frontend cd ../frontend npm install cp .env.example .env # Volver a raíz y ejecutar cd ../.. npm run dev ``` **Stack:** NestJS + React + PostgreSQL + TypeORM ### Trading Platform ```bash cd projects/trading-platform # Backend cd apps/backend npm install cp .env.example .env # Frontend cd ../frontend npm install cp .env.example .env # ML Engine (Python) cd ../ml-engine python -m venv .venv source .venv/bin/activate # Linux/Mac # .venv\Scripts\activate # Windows pip install -r requirements.txt ``` **Stack:** Node.js + React + Python (ML) + PostgreSQL ### ERP Suite - Verticales ```bash cd projects/erp-suite/apps/verticales/construccion # Backend cd backend npm install cp .env.example .env # Frontend cd ../frontend npm install # Base de datos cd ../database # Ejecutar DDL en PostgreSQL psql -U postgres -f ddl/001-schema.sql ``` **Stack:** NestJS + React + PostgreSQL ## Setup con Conda (Proyectos Python) ### Crear Ambiente Base ```bash # Crear ambiente para el workspace conda create -n workspace python=3.11 conda activate workspace # Instalar herramientas base pip install poetry black flake8 pytest ``` ### Ambiente para ML/Trading ```bash conda create -n trading-ml python=3.11 conda activate trading-ml cd projects/trading-platform/apps/ml-engine pip install -r requirements.txt ``` ### Ambiente para Odoo ```bash conda create -n odoo18 python=3.10 conda activate odoo18 cd knowledge-base/reference/odoo/odoo-18.0 pip install -r requirements.txt # Dependencias adicionales de Odoo pip install psycopg2-binary watchdog ``` ## Base de Datos ### PostgreSQL Local ```bash # Crear base de datos por proyecto createdb gamilit_dev createdb trading_dev createdb erp_construccion_dev # O usar Docker docker run -d \ --name postgres-workspace \ -e POSTGRES_PASSWORD=postgres \ -p 5432:5432 \ -v pgdata:/var/lib/postgresql/data \ postgres:14 ``` ### Configuración .env Típica ```env # Database DB_HOST=localhost DB_PORT=5432 DB_NAME=proyecto_dev DB_USER=postgres DB_PASSWORD=postgres # App NODE_ENV=development PORT=3000 # JWT (generar uno nuevo para producción) JWT_SECRET=dev-secret-cambiar-en-produccion ``` ## Docker (Opcional) ### Levantar Servicios Comunes ```bash cd devtools/docker # Base de datos + Redis docker-compose -f docker-compose.common.yml up -d # Verificar docker ps ``` ### Proyecto Específico ```bash cd projects/gamilit docker-compose up -d ``` ## Verificar Instalación ### Script de Verificación ```bash # Ejecutar desde la raíz del workspace ./devtools/scripts/validate-structure.sh ``` ### Verificación Manual ```bash # Git git --version git status git submodule status # Node.js node --version npm --version # Python python --version pip --version # PostgreSQL psql --version # Docker (opcional) docker --version docker-compose --version ``` ## Problemas Comunes ### Submodules no inicializados ```bash # Error: knowledge-base/reference/odoo está vacío git submodule update --init --recursive ``` ### Permisos de scripts ```bash # Error: Permission denied chmod +x devtools/scripts/*.sh ``` ### Puerto en uso ```bash # Error: EADDRINUSE # Encontrar proceso usando el puerto lsof -i :3000 # Matar proceso kill -9 ``` ### node_modules corrupto ```bash # Limpiar e reinstalar rm -rf node_modules package-lock.json npm install ``` ### Python ambiente incorrecto ```bash # Verificar ambiente activo which python conda info --envs # Activar ambiente correcto conda activate workspace ``` ## IDEs Recomendados ### VS Code Extensiones recomendadas: - ESLint - Prettier - TypeScript - Python - GitLens - Docker Settings compartidos en `.vscode/settings.json` de cada proyecto. ### JetBrains (WebStorm/PyCharm) - Abrir cada proyecto como proyecto separado - Configurar Node.js interpreter por proyecto - Configurar Python interpreter por proyecto ## Flujo de Trabajo Diario ```bash # 1. Actualizar workspace cd workspace git pull git submodule update --remote --merge # 2. Ir al proyecto cd projects/gamilit # 3. Actualizar dependencias (si hay cambios en package.json) npm install # 4. Iniciar desarrollo npm run dev # 5. Antes de commit npm run lint npm run test ``` ## Contacto y Soporte - **Repositorio:** https://github.com/rckrdmrd/workspace - **Documentación:** Ver `/docs` en cada proyecto - **Orquestación:** Ver `/orchestration` para guías de agentes