Volver a proyectos
SNCF SECAFI IA Reseau

SNCF SECAFI IA Reseau

Plataforma de Asistencia Inteligente para Red Ferroviaria

Rol: Full Stack Developer
Período: Octubre - Diciembre 2024
Producción
Cliente: SNCF (Société Nationale des Chemins de fer Français)

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

React
TypeScript
Tailwind CSS
shadcn/ui
Radix UI
React Router DOM
TanStack React Query
TanStack Table
React Hook Form
Zod
Recharts
Sonner
Lucide React

Backend

NestJS
TypeScript
TypeORM
MySQL
JWT/Passport
Chatbase AI
class-validator
class-transformer
bcrypt
Swagger
Docker

Proyectos

1

SNCF IA Reseau API

Backend NestJS con Interfaz Editable vía API

~8.500
Líneas de Código
67
Archivos
7
Módulos
3
Entities
15+
DTOs

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

01
Autenticación JWT

Sistema completo con register/login, refresh tokens, guards de protección y estrategia Passport

02
Integración Chatbase AI

Proxy para API de Chatbase con gestión de conversaciones, historial y rate limiting

03
Monitoreo de Conversaciones

Historial completo de conversaciones con filtros, paginación y estadísticas

04
API de Estadísticas

Dashboard con métricas de uso, conversaciones por período y análisis de usuarios activos

05
Swagger/OpenAPI

Documentación automática e interactiva de la API con ejemplos

06
Docker Setup

Containerización completa con MySQL, volúmenes persistentes y red aislada

Design Patterns

Modular Architecture
Repository Pattern
DTO Pattern
Guard Pattern
Exception Filters
Dependency Injection

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

2

SNCF IA Reseau Front

Interfaz Web Moderna con Chat Inteligente

~12.000
Líneas de Código
95
Archivos
48
Componentes
12
Hooks
8
Páginas

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

01
Interfaz de Chat

Interfaz conversacional en tiempo real con historial, indicadores de escritura y renderizado markdown

02
Autenticación

Login/registro con validación, persistencia de sesión, refresh automático de tokens

03
Panel Administrativo

Dashboard con estadísticas, gestión de usuarios, visualización de conversaciones y analytics

04
Gestión de Usuarios

CRUD completo, filtros avanzados, roles y permisos, exportación de datos

05
Historial de Conversaciones

Visualización detallada de todas las conversaciones con filtros por fecha, usuario y contenido

06
Sistema de Notificaciones

Toasts con Sonner para feedback de acciones y errores

07
Tablas Interactivas

TanStack Table con sorting, filtering, pagination y visibilidad de columnas

08
Formularios Validados

React Hook Form + Zod para validación robusta y type-safe

09
Animaciones Personalizadas

Transiciones suaves, micro-interacciones y loading states desarrollados por mí

10
Diseño Responsive

Layout adaptativo para desktop, tablet y móvil basado en Figma de House of Coding

Design Patterns

Custom Hooks Pattern
React Query Pattern
Form Management
Route Protection
Component Composition
State Management

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

Galería

1
Image 1
2
Image 2
3
Image 3
4
Image 4
5
Image 5
6
Image 6
Gregory Praxedes | Full Stack Developer & UI/UX Specialist