Voltar aos projetos
SNCF SECAFI IA Reseau

SNCF SECAFI IA Reseau

Plataforma de Assistência Inteligente para Rede Ferroviária

Função: Full Stack Developer
Período: Outubro - Dezembro 2024
Produção
Cliente: SNCF (Société Nationale des Chemins de fer Français)

Visão Geral

Contexto

A SNCF SECAFI necessitava de uma ferramenta interna inteligente para auxiliar na tomada de decisões estratégicas, fornecendo estimativas e previsões sobre cenários futuros da rede ferroviária através de inteligência artificial. O sistema permite que os funcionários façam consultas complexas e obtenham análises preditivas baseadas em dados históricos e padrões identificados.

Solução

Sistema completo com API REST robusta em NestJS e interface web moderna editável em React. Integração com Chatbase AI para processamento de consultas complexas e geração de estimativas, sistema de autenticação JWT, e painel administrativo para monitoramento de conversas e previsões. Interface totalmente configurável através da API.

Meu Papel

Atuei como Full Stack Developer responsável por todo o desenvolvimento do projeto. Desenvolvi sozinho toda a arquitetura da API backend com NestJS, TypeORM e MySQL, e implementei completamente o frontend em React, incluindo todas as animações e interações. Apenas o design UI/UX foi fornecido pela equipe House of Coding via Figma.

Stack Técnica

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

Projetos

1

SNCF IA Reseau API

Backend NestJS com Interface Editável via API

~8.500
Linhas de Código
67
Arquivos
7
Módulos
3
Entities
15+
DTOs

API REST robusta desenvolvida em NestJS com arquitetura modular. Sistema completo de autenticação JWT, integração com Chatbase AI para processamento de consultas e geração de estimativas, e interface totalmente editável e configurável através de endpoints da API.

Features

01
Autenticação JWT

Sistema completo com register/login, refresh tokens, guards de proteção e estratégia Passport

02
Integração Chatbase AI

Proxy para API do Chatbase com gerenciamento de conversas, histórico e rate limiting

03
Monitoramento de Conversas

Histórico completo de conversas com filtros, paginação e estatísticas

04
API de Estatísticas

Dashboard com métricas de uso, conversas por período e análise de usuários ativos

05
Swagger/OpenAPI

Documentação automática e interativa da API com exemplos

06
Docker Setup

Containerização completa com MySQL, volumes persistentes e network isolada

Design Patterns

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

Decisões Técnicas

NestJS vs Express/Fastify

Estrutura enterprise-ready out-of-the-box, TypeScript first-class, arquitetura modular escalável, decorators para metaprogramação, integração Swagger nativa

TypeORM vs Prisma

Decorators para entities, migrations robustas, suporte a múltiplos bancos, active record pattern familiar, melhor para projetos NestJS complexos

JWT vs Session

Stateless, escalável horizontalmente, não requer armazenamento server-side, ideal para APIs REST, refresh tokens para segurança

Chatbase vs OpenAI Direct

Sistema de conversas gerenciado, treinamento específico do modelo, rate limiting incluído, métricas built-in, custo otimizado

Desafios & Soluções

Rate Limiting Chatbase

Implementação de fila de requisições com retry exponencial, cache de respostas frequentes, fallback messages para timeouts

Gestão de Tokens JWT

Refresh tokens com rotação, blacklist para tokens revogados, expiração configurável por ambiente

Persistência de Conversas

Schema otimizado com índices, relacionamento User-Conversation 1:N, soft delete para auditoria

Validação de Dados

DTOs com class-validator, transform pipes globais, custom validators para regras de negócio

Docker Development

Docker Compose com hot-reload, volumes para persistência MySQL, network isolada, variáveis de ambiente seguras

2

SNCF IA Reseau Front

Interface Web Moderna com Chat Inteligente

~12.000
Linhas de Código
95
Arquivos
48
Componentes
12
Hooks
8
Páginas

Aplicação React single-page com design fornecido pela equipe House of Coding via Figma. Interface moderna com chat em tempo real, painel administrativo completo, e sistema de autenticação integrado. Animações e interações desenvolvidas por mim.

Features

01
Chat Interface

Interface conversacional em tempo real com histórico, typing indicators e markdown rendering

02
Autenticação

Login/registro com validação, persistência de sessão, refresh automático de tokens

03
Painel Administrativo

Dashboard com estatísticas, gestão de usuários, visualização de conversas e analytics

04
Gestão de Usuários

CRUD completo, filtros avançados, roles e permissões, exportação de dados

05
Histórico de Conversas

Visualização detalhada de todas as conversas com filtros por data, usuário e conteúdo

06
Sistema de Notificações

Toasts com Sonner para feedback de ações e erros

07
Tabelas Interativas

TanStack Table com sorting, filtering, pagination e column visibility

08
Forms Validados

React Hook Form + Zod para validação robusta e type-safe

09
Animações Customizadas

Transições suaves, micro-interações e loading states desenvolvidos por mim

10
Design Responsivo

Layout adaptativo para desktop, tablet e mobile baseado no Figma da House of Coding

Design Patterns

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

Decisões Técnicas

React vs Next.js

SPA pura sem necessidade de SSR, autenticação client-side, deploy mais simples, routing client-side suficiente

TanStack Query vs Redux

Especializado em server state, cache inteligente, menos boilerplate, invalidation automática, devtools excelentes

shadcn/ui vs Material UI

Copy-paste sem dependências pesadas, customização total via Tailwind, acessibilidade Radix, componentes modernos

React Hook Form + Zod

Performance superior (menos re-renders), validação type-safe, integração perfeita, bundle menor que Formik

Recharts vs Chart.js

Composable, declarativo com React, customização via props, TypeScript nativo, responsivo out-of-the-box

Desafios & Soluções

Implementação do Design Figma

Fidelidade pixel-perfect ao design da House of Coding usando Tailwind, sistema de cores e espaçamentos consistentes, componentes reutilizáveis

Animações Personalizadas

Transições CSS customizadas, framer-motion para animações complexas, loading skeletons, micro-interações em botões e cards

Real-time Chat Experience

Polling otimizado com React Query, auto-scroll inteligente, typing indicators, formatação markdown

Gestão de Tokens

Interceptor axios para refresh automático, retry de requisições falhadas, logout em token expirado

Tabelas Performáticas

Virtualização com TanStack Table, paginação server-side, lazy loading, memoização de células

Galeria

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