workspace/knowledge-base/reference/erp-inmobiliaria-legacy/README.md
rckrdmrd ea1879f4ad feat: Initial workspace structure with multi-level Git configuration
- Configure workspace Git repository with comprehensive .gitignore
- Add Odoo as submodule for ERP reference code
- Include documentation: SETUP.md, GIT-STRUCTURE.md
- Add gitignore templates for projects (backend, frontend, database)
- Structure supports independent repos per project/subproject level

Workspace includes:
- core/ - Reusable patterns, modules, orchestration system
- projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.)
- knowledge-base/ - Reference code and patterns (includes Odoo submodule)
- devtools/ - Development tools and templates
- customers/ - Client implementations template

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 10:44:23 -06:00

325 lines
9.1 KiB
Markdown

# 📚 REFERENCE - Código de Referencia
**Propósito:** Esta carpeta contiene proyectos y código de referencia para análisis, comparación y mejora del desarrollo actual.
---
## 🎯 USO
### Para Architecture-Analyst
- Analizar implementaciones de referencia de Odoo y OCA
- Comparar patrones arquitectónicos
- Documentar mejores prácticas observadas
- Proponer mejoras basadas en referencias
### Para Agentes de Desarrollo
- Consultar implementaciones de funcionalidades similares
- Comparar enfoques de diseño en módulos Odoo
- Reutilizar patrones probados
- Entender mejores prácticas de desarrollo Python/Odoo
### Para Claude Code Cloud
- Acceso a código de referencia desde cualquier instancia
- Comparaciones automáticas con código actual
- Análisis de implementaciones
---
## 📂 ESTRUCTURA
```
reference/
├── README.md # Este archivo
├── odoo/ # Código Odoo de referencia
│ └── README.md
├── gamilit/ # Proyecto GAMILIT (arquitectura educativa)
│ ├── README.md
│ ├── _MAP.md # Mapa completo del proyecto
│ ├── backend/ # Backend Node.js + TypeScript
│ ├── frontend/ # Frontend React + TypeScript
│ ├── database/ # PostgreSQL schemas y DDL
│ └── devops/ # Scripts DevOps y validación
├── odoo-modules/ # Módulos Odoo de referencia (futuro)
│ ├── oca-account/ # Módulos contables de OCA
│ │ ├── __manifest__.py
│ │ ├── models/
│ │ └── README.md
│ └── custom-modules/ # Módulos personalizados de ejemplo
├── python-patterns/ # Patrones Python de referencia (futuro)
│ ├── design-patterns/
│ └── best-practices/
└── integrations/ # Integraciones de referencia (futuro)
├── api-examples/
└── external-services/
```
---
## ⚠️ IMPORTANTE - Qué Versionar
### ✅ SÍ versionar (INCLUIR):
- Código fuente Python (.py)
- Archivos de manifiesto (__manifest__.py, __init__.py)
- Archivos de configuración (requirements.txt, setup.py)
- Documentación (.md files, .rst files)
- Esquemas de base de datos (.sql files, .xml files)
- Archivos de vista (.xml)
- Archivos de datos (.csv, .xml para datos)
- README y documentación
### ❌ NO versionar (IGNORADO automáticamente):
- __pycache__/
- *.pyc
- *.pyo
- .eggs/
- venv/
- env/
- .venv/
- node_modules/ (si hay frontend)
- dist/
- build/
- .next/ (si hay Next.js)
- coverage/
- *.log
- *.tmp
- *.cache
- .DS_Store
**Razón:** Solo versionamos código fuente. Las dependencias Python se pueden regenerar con `pip install -r requirements.txt`.
---
## 📋 DIRECTRICES
### Al Agregar Proyectos de Referencia
1. **Limpiar antes de agregar:**
```bash
# Eliminar cache Python y virtual environments
cd reference/nuevo-proyecto
find . -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null
find . -name "*.pyc" -delete
find . -name "*.pyo" -delete
rm -rf venv env .venv
```
2. **Verificar que está limpio:**
```bash
# No debe mostrar carpetas de cache o virtual environments
du -sh reference/nuevo-proyecto/*
```
3. **Agregar README del proyecto:**
```markdown
# Proyecto: {nombre}
**Fuente:** {URL o descripción}
**Propósito:** ¿Por qué se incluye como referencia?
**Aspectos relevantes:** ¿Qué podemos aprender?
## Instalación (para probar localmente)
```bash
cd reference/{nombre}
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
## Aspectos destacables
- Feature 1: Descripción
- Pattern 2: Descripción
```
4. **Commit con mensaje descriptivo:**
```bash
git add reference/nuevo-proyecto
git commit -m "ref: agregar proyecto {nombre} como referencia para {propósito}"
```
---
## 🔍 VALIDACIÓN
### Verificar que reference/ está en el repo:
```bash
# Debe devolver vacío (no ignorado)
git check-ignore reference/
# Debe mostrar archivos de reference/
git ls-files reference/
```
### Verificar que __pycache__ está ignorado dentro de reference/:
```bash
# Debe devolver: reference/proyecto/__pycache__/
git check-ignore reference/proyecto/__pycache__/
```
### Verificar que venv está ignorado dentro de reference/:
```bash
# Debe devolver: reference/proyecto/venv/
git check-ignore reference/proyecto/venv/
```
### Ejecutar validación automática:
```bash
bash orchestration/scripts/validate-gitignore.sh
```
Debe mostrar:
```
✅ reference/ NO está ignorado (correcto)
✅ reference/**/__pycache__/ está ignorado (correcto)
✅ reference/**/venv/ está ignorado (correcto)
```
---
## 📊 TAMAÑO RECOMENDADO
**Máximo recomendado:** ~100MB por proyecto (solo código fuente)
Si un proyecto excede este tamaño:
- Considerar incluir solo las partes relevantes
- Crear subcarpeta con implementaciones específicas
- Documentar ubicación del proyecto completo (URL)
---
## 🎓 EJEMPLOS DE USO
### Ejemplo 1: Analizar Módulo Contable de OCA
```markdown
**Tarea:** Implementar gestión de ejercicios fiscales
**Agente:** Architecture-Analyst
**Proceso:**
1. Revisar `reference/odoo-modules/oca-account/account_fiscal_year/`
2. Analizar modelos de datos y vistas
3. Comparar con implementación actual
4. Documentar mejoras en `docs/adr/ADR-XXX.md`
```
### Ejemplo 2: Implementar Feature Similar
```markdown
**Tarea:** Implementar templates de asientos contables
**Agente:** Backend-Agent
**Proceso:**
1. Consultar `reference/odoo-modules/oca-account/account_move_template/`
2. Revisar modelos de datos y lógica de negocio
3. Adaptar patrones al proyecto actual
4. Implementar con mejores prácticas observadas
```
### Ejemplo 3: Comparar Arquitectura
```markdown
**Tarea:** Refactorizar estructura de módulos Odoo
**Agente:** Architecture-Analyst
**Proceso:**
1. Analizar `reference/odoo-modules/best-practices/`
2. Comparar con estructura actual
3. Proponer mejoras arquitectónicas
4. Crear plan de refactorización
```
---
## 🎯 CASOS DE USO ESPECÍFICOS
### Proyecto GAMILIT (Referencia Arquitectónica)
**Relevancia:** Sistema educativo gamificado con arquitectura moderna y prácticas recomendadas
**Aspectos destacables:**
- Monorepo TypeScript con backend (Node.js/Express) y frontend (React/Vite)
- Arquitectura de base de datos multi-schema (9 schemas, 44 tablas)
- Sistema de constantes SSOT (Single Source of Truth)
- Feature-Sliced Design en frontend
- Path aliases consistentes
- Scripts de validación y sincronización automática
**Aplicable para:**
- Patrones de arquitectura de software
- Estructura de monorepo
- Sincronización Backend ↔ Frontend
- Organización de base de datos PostgreSQL
- Testing y validación automática
**Ver:** `reference/gamilit/README.md` y `reference/gamilit/_MAP.md`
---
### Proyectos Odoo de Referencia
```markdown
Tipos de proyectos a incluir:
- Módulos OCA (Odoo Community Association)
- Módulos core de Odoo con implementaciones ejemplares
- Módulos personalizados con patrones útiles
- Integraciones con servicios externos
- Implementaciones de reportes complejos
```
### Patrones Python
```markdown
Tipos de patrones a incluir:
- Design patterns (Singleton, Factory, etc.)
- Patrones de testing
- Patrones de API design
- Patrones de manejo de datos
```
---
## 📚 REFERENCIAS
- [DIRECTIVA-GESTION-BACKUPS-GITIGNORE.md](../orchestration/directivas/DIRECTIVA-GESTION-BACKUPS-GITIGNORE.md) - Sección 1.5
- [PROMPT-ARCHITECTURE-ANALYST.md](../orchestration/prompts/PROMPT-ARCHITECTURE-ANALYST.md)
- `.gitignore` - Sección REFERENCE
---
## ✅ CHECKLIST ANTES DE COMMIT
Antes de agregar un nuevo proyecto de referencia:
- [ ] Eliminar __pycache__/, *.pyc, *.pyo
- [ ] Eliminar venv/, env/, .venv/
- [ ] Eliminar node_modules/ (si aplica)
- [ ] Verificar que solo hay código fuente
- [ ] Agregar README del proyecto explicando propósito
- [ ] Verificar tamaño total (< 100MB recomendado)
- [ ] Documentar aspectos relevantes del proyecto
- [ ] Commit con mensaje descriptivo
---
## 🔗 RECURSOS ÚTILES
### Repositorios OCA
- [OCA Account Financial Tools](https://github.com/OCA/account-financial-tools)
- [OCA Account Invoicing](https://github.com/OCA/account-invoicing)
- [OCA Server Tools](https://github.com/OCA/server-tools)
- [OCA Web Tools](https://github.com/OCA/web)
### Documentación Odoo
- [Odoo Developer Documentation](https://www.odoo.com/documentation/master/developer.html)
- [Odoo ORM Guide](https://www.odoo.com/documentation/master/developer/reference/backend/orm.html)
---
**Última actualización:** 2025-11-23
**Mantenido por:** Architecture-Analyst, Workspace-Manager
**Directiva:** DIRECTIVA-GESTION-BACKUPS-GITIGNORE.md sección 1.5