Referencia API

Esta sección reúne las piezas de orquestación que un reclutador técnico revisaría al evaluar mis capacidades: un dashboard en vivo que inspecciona la latencia de cada microservicio, un panel de operaciones para disparar sincronizaciones (`/github/sync`) y procesos de ingesta de CV, además de la documentación interactiva de la Recruiter API levantada con FastAPI, todo está construido sobre microservicios versionables, contratos REST tipados (Pydantic ↔ TypeScript) y flujos autenticados mediante tokens de administración, demostrando gobierno de APIs, monitoreo continuo y automatización de contenido.

Stack clave

Frontend
Logo Next.jsNext.jsLogo ReactReactLogo TypeScriptTypeScriptLogo TailwindTailwindLogo FramerFramer

Next.js 14 (App Router) con React 18 y TypeScript para SSR/ISR, SEO técnico y UI responsiva.

  • Metadatos controlados server-side, generación de `sitemap.xml`, `robots.txt` y JSON-LD de persona.
  • Tailwind CSS y componentes animados con Framer Motion para microinteracciones accesibles.
  • Consumo de microservicios mediante variables `NEXT_PUBLIC_*` y fetch incremental para evitar vendor lock-in.
APIs y backend
Logo FastAPIFastAPILogo PythonPythonPydantichttpxWebSockets

FastAPI, Pydantic y uvicorn para servicios REST tipados, con fallback offline y soporte WebSockets.

  • Endpoints idempotentes (`/profile`, `/projects`, `/github/projects`) con validaciones Pydantic.
  • Rutas administrativas protegidas por `X-Admin-Token` (`/github/sync`, `/admin/ingest-cv`).
  • Canal `/ws/updates` para notificaciones en tiempo real y pruebas de event streaming.
Automatización y datos
pypdfJSONLogo GitHub APIGitHub APIScripts

Data source versionada en JSON y servicios dedicados para ingesta y sincronización de contenido.

  • Servicio `content-ingest` extrae texto del CV (pypdf) y normaliza campos en `data/*.json`.
  • Scripts de sincronización GitHub para cachear repositorios con métricas de estrellas y descripción.
  • Separación de data frontend (`/public/data`) y data backend (`/data`) para optimizar render vs. API.
Infraestructura y CI/CD
Logo DockerDockerDocker ComposeLogo GitHub ActionsGitHub ActionsMakefileZsh

Docker Compose orquesta microservicios, GitHub Actions valida builds y pruebas, secrets vía `.env`.

  • Compose define redes aisladas, volúmenes compartidos y hot reload (`--reload`, `pnpm dev`).
  • Makefile centraliza seeds, builds, pruebas y shortcuts operativos.
  • Pipeline CI ejecuta lint/build en frontend y backend, asegurando consistencia semántica antes del deploy.

Arquitectura de microservicios

api-profileFastAPI · PydanticPuerto 8001

Publica perfil, experiencia, educación y soft skills desde el volumen `./data` con fallback local.

  • `GET /profile`, `/experience`, `/education`, `/soft-skills` generan el contenido consumido por Next.js.
  • Montaje compartido de `./data` permite actualizar JSON sin reconstruir la imagen.
  • Health check `/health` monitoreado desde el dashboard para uptime y latencia.
api-projectsFastAPI · httpxPuerto 8002

Gestiona proyectos propios y repos GitHub cacheados, habilitando sincronización on-demand.

  • `GET /projects` expone catálogo curado, mientras `GET /github/projects` entrega repos cacheados.
  • `POST /github/sync` consume la API de GitHub autenticada opcionalmente con token personal.
  • Datos persistidos en `data/projects.json` y `data/github.json` para resiliencia en modo offline.
content-ingestFastAPI · pypdfPuerto 8015

Servicio de ingesta que transforma el PDF del CV a texto indexable para los demás microservicios.

  • `POST /ingest/cv` (tokenizado) procesa el PDF y actualiza `data/cv_text.txt`.
  • Permite automatizar resúmenes y actualizaciones sin manipular manualmente los datos crudos.
  • Expone `/health` para validar disponibilidad antes de ejecutar pipelines.
chatbotFastAPI · MCP/GeminiPuerto 8010

Proxy configurable que orquesta prompts con contexto del CV, soportando modo stub sin API key.

  • `POST /chat` y `/ws` habilitan respuesta síncrona y streaming conversacional.
  • Rate limiting configurable vía variables (`MAX_QUESTIONS_*`, `COOLDOWN_SECONDS`).
  • Integra tokens públicos para front y secretos para admin, aislando permisos.
frontendNext.js · ReactPuerto 3000

UI que consume microservicios y expone assets estáticos optimizados para SEO y accesibilidad.

  • Server Components combinados con rutas dinámicas para secciones del CV y panel de referencia.
  • Panel “Referencia API” consulta health checks y sincroniza repos via fetch y almacenamiento local.
  • Publica datasets en `/public/data` para render instantáneo mientras los servicios cargan.

Dashboard de servicios

Backend
offline
Latencia: ms
Profile
offline
Latencia: ms
Projects
offline
Latencia: ms
Chatbot
offline
Latencia: ms
Content Ingest
offline
Latencia: ms

Sincronización de repositorios GitHub

Resultado GitHub Sync
Repositorios sincronizados

Sin repos sincronizados aún.

API y documentación (Swagger)

Perfil
Proyectos
Chatbot
Content Ingest