
SNCF SECAFI IA Reseau
Plataforma de Asistencia Inteligente para Red Ferroviaria
Visión General
Contexto
SNCF SECAFI necesitaba una herramienta interna inteligente para asistir en la toma de decisiones estratégicas, proporcionando estimaciones y previsiones sobre escenarios futuros de la red ferroviaria a través de inteligencia artificial. El sistema permite que los empleados hagan consultas complejas y obtengan análisis predictivos basados en datos históricos y patrones identificados.
Solución
Sistema completo con API REST robusta en NestJS e interfaz web moderna editable en React. Integración con Chatbase AI para procesamiento de consultas complejas y generación de estimaciones, sistema de autenticación JWT, y panel administrativo para monitoreo de conversaciones y predicciones. Interfaz totalmente configurable a través de la API.
Mi Rol
Trabajé como Full Stack Developer responsable de todo el desarrollo del proyecto. Desarrollé toda la arquitectura de la API backend con NestJS, TypeORM y MySQL, e implementé completamente el frontend en React, incluyendo todas las animaciones e interacciones. Solo el diseño UI/UX fue proporcionado por el equipo de House of Coding vía Figma.
Stack Técnico
Frontend
Backend
Proyectos
SNCF IA Reseau API
Backend NestJS con Interfaz Editable vía API
API REST robusta desarrollada en NestJS con arquitectura modular. Sistema completo de autenticación JWT, integración con Chatbase AI para procesamiento de consultas y generación de estimaciones, e interfaz totalmente editable y configurable a través de endpoints de la API.
Funcionalidades
Autenticación JWT
Sistema completo con register/login, refresh tokens, guards de protección y estrategia Passport
Integración Chatbase AI
Proxy para API de Chatbase con gestión de conversaciones, historial y rate limiting
Monitoreo de Conversaciones
Historial completo de conversaciones con filtros, paginación y estadísticas
API de Estadísticas
Dashboard con métricas de uso, conversaciones por período y análisis de usuarios activos
Swagger/OpenAPI
Documentación automática e interactiva de la API con ejemplos
Docker Setup
Containerización completa con MySQL, volúmenes persistentes y red aislada
Design Patterns
Decisiones Técnicas
NestJS vs Express/Fastify
Estructura enterprise-ready out-of-the-box, TypeScript first-class, arquitectura modular escalable, decorators para metaprogramación, integración Swagger nativa
TypeORM vs Prisma
Decorators para entities, migraciones robustas, soporte para múltiples bases de datos, patrón active record familiar, mejor para proyectos NestJS complejos
JWT vs Session
Stateless, escalable horizontalmente, no requiere almacenamiento server-side, ideal para APIs REST, refresh tokens para seguridad
Chatbase vs OpenAI Direct
Sistema de conversaciones gestionado, entrenamiento específico del modelo, rate limiting incluido, métricas integradas, costo optimizado
Desafíos & Soluciones
Rate Limiting de Chatbase
Implementación de cola de peticiones con retry exponencial, caché de respuestas frecuentes, mensajes de fallback para timeouts
Gestión de Tokens JWT
Refresh tokens con rotación, blacklist para tokens revocados, expiración configurable por entorno
Persistencia de Conversaciones
Schema optimizado con índices, relación User-Conversation 1:N, soft delete para auditoría
Validación de Datos
DTOs con class-validator, transform pipes globales, validadores personalizados para reglas de negocio
Desarrollo con Docker
Docker Compose con hot-reload, volúmenes para persistencia MySQL, red aislada, variables de entorno seguras
SNCF IA Reseau Front
Interfaz Web Moderna con Chat Inteligente
Aplicación React single-page con diseño proporcionado por el equipo de House of Coding vía Figma. Interfaz moderna con chat en tiempo real, panel administrativo completo, y sistema de autenticación integrado. Animaciones e interacciones desarrolladas por mí.
Funcionalidades
Interfaz de Chat
Interfaz conversacional en tiempo real con historial, indicadores de escritura y renderizado markdown
Autenticación
Login/registro con validación, persistencia de sesión, refresh automático de tokens
Panel Administrativo
Dashboard con estadísticas, gestión de usuarios, visualización de conversaciones y analytics
Gestión de Usuarios
CRUD completo, filtros avanzados, roles y permisos, exportación de datos
Historial de Conversaciones
Visualización detallada de todas las conversaciones con filtros por fecha, usuario y contenido
Sistema de Notificaciones
Toasts con Sonner para feedback de acciones y errores
Tablas Interactivas
TanStack Table con sorting, filtering, pagination y visibilidad de columnas
Formularios Validados
React Hook Form + Zod para validación robusta y type-safe
Animaciones Personalizadas
Transiciones suaves, micro-interacciones y loading states desarrollados por mí
Diseño Responsive
Layout adaptativo para desktop, tablet y móvil basado en Figma de House of Coding
Design Patterns
Decisiones Técnicas
React vs Next.js
SPA pura sin necesidad de SSR, autenticación client-side, deploy más simple, routing client-side suficiente
TanStack Query vs Redux
Especializado en server state, caché inteligente, menos boilerplate, invalidación automática, devtools excelentes
shadcn/ui vs Material UI
Copy-paste sin dependencias pesadas, personalización total vía Tailwind, accesibilidad Radix, componentes modernos
React Hook Form + Zod
Rendimiento superior (menos re-renders), validación type-safe, integración perfecta, bundle menor que Formik
Recharts vs Chart.js
Composable, declarativo con React, personalización vía props, TypeScript nativo, responsive out-of-the-box
Desafíos & Soluciones
Implementación del Diseño Figma
Fidelidad pixel-perfect al diseño de House of Coding usando Tailwind, sistema de colores y espaciados consistentes, componentes reutilizables
Animaciones Personalizadas
Transiciones CSS personalizadas, framer-motion para animaciones complejas, loading skeletons, micro-interacciones en botones y cards
Experiencia de Chat en Tiempo Real
Polling optimizado con React Query, auto-scroll inteligente, indicadores de escritura, formato markdown
Gestión de Tokens
Interceptor axios para refresh automático, retry de peticiones fallidas, logout en token expirado
Tablas Performáticas
Virtualización con TanStack Table, paginación server-side, lazy loading, memoización de células