Fecha de inicio: 2026-01-26
- Crear estructura inicial del backend (FastAPI)
- Añadir modelos SQLAlchemy (
Category,Technology,Attribute,TechScore,Compatibility) —backend/app/models.py - Configurar conexión a base de datos y
SessionLocal—backend/app/database.py - Implementar lógica de recomendador (media ponderada) —
backend/app/recommender.py - Añadir cliente IA con fallback (Ollama env var) —
backend/app/ai_client.py - Crear endpoint
POST /recommend-stack/—backend/app/routes/recommend.py - Añadir Pydantic schemas —
backend/app/schemas.py - Añadir seed de ejemplo para tecnologías y atributos —
backend/app/seed_data.py - Crear
README.mdcon instrucciones básicas —README.md - Scaffold frontend Next.js y GROQ client stub —
frontend/(package.json, next.config.js, lib/groqClient.js) - Añadir página principal con sliders que consumen la API —
frontend/pages/index.jsx - Añadir listado de tecnologías con GROQ (fallback si no configurado) —
frontend/pages/tech.jsx - Añadir Dockerfiles para backend y frontend
- Añadir
docker-compose.yml,Makefiley.env.examplepara desarrollo local - Añadir GitHub Actions CI básica —
.github/workflows/ci.yml - Añadir script de sincronización con Sanity/GROQ —
backend/app/sanity_sync.py - Añadir endpoint admin
/admin/sync-groq/y protección por token opcional —backend/app/routes/admin.py - Implementar scheduler APScheduler para sincronizaciones periódicas —
backend/app/scheduler.py - Añadir documentación de uso del admin y del sincronizador en
README.md
- Proteger endpoints con autenticación completa (JWT o similar) para producción
- Implementar workers asíncronos (Celery/RQ) para procesamiento en background escalable
- Implementar vector store y pipeline RAG para justificaciones con LLMs
- Añadir pruebas unitarias e integración (backend + frontend E2E)
- Añadir Docker Compose secrets y producción-ready configs (Postgres managed, Redis, vector DB)
- Implementar CI/CD con despliegues canary/blue-green
- Mejorar el modelo de datos: materialized views, índices y migraciones (Alembic)
- Añadir observabilidad: métricas, logs estructurados y tracing
- Añadir una página de administración y UI para gestionar
tech_scoresy compatibilidades
backend/requirements.txt: dependencias incluidas (fastapi,uvicorn,sqlalchemy,pydantic,requests,psycopg2-binary,apscheduler)backend/app/*: modelos, DB, lógica, rutas, AI client, scheduler, sanity syncfrontend/*: Next.js scaffold, pages, GROQ client, recommendation servicedocker-compose.yml,Makefile,.env.examplepara desarrollo local.github/workflows/ci.ymlpara build básico
- Backend (entorno virtual):
python3 -m venv .venv
. .venv/bin/activate
pip install -r backend/requirements.txt
uvicorn backend.app.main:app --reload- Sembrar datos de ejemplo:
python - <<'PY'
from backend.app.database import SessionLocal
from backend.app.seed_data import seed
db = SessionLocal()
seed(db)
db.close()
PY- Frontend (Next.js):
cd frontend
npm install
npm run dev- Opcional: levantar con Docker Compose (requiere Docker):
docker-compose up --build- El endpoint admin
/admin/sync-groq/está protegido porADMIN_TOKENsi esta variable está definida. - El cliente IA usa
OLLAMA_URLcuando está configurado; de lo contrario devuelve una justificación templada y determinista.