Pular para o conteúdo principal

Serviços do Ladesa

O Ladesa é composto por serviços independentes que podem operar em conjunto ou individualmente. Todos são gratuitos e de código aberto.

ServiçoTecnologiaRepositórioDescrição
API (management-service)NestJS + Bun + TypeORM + PostgreSQLladesa-ro/apiAPI REST principal — CRUD de todas as entidades
Gerar Horário (timetable-generator)C# + .NET 9 + Google OR-Tools CP-SATladesa-ro/gerar-horario-coreSolver de otimização (consome fila RabbitMQ)
WebNuxt 4 + Vue 3 + Tailwind v4ladesa-ro/webFrontend unificado SISGHA + SISGEA
MobileFlutter (Dart)ladesa-ro/mobileApp Android/iOS para Aluno e Professor
AutenticaçãoKeycloak 25.0ladesa-ro/authSSO — OAuth2/OIDC
Mensageria (messages)TypeSpecladesa-ro/messagesContratos de API entre serviços
Documentação (docs)Docusaurus 3ladesa-ro/docsEste site de documentação

Infraestrutura

Os serviços dependem dos seguintes componentes de infraestrutura:

ComponenteTecnologiaPapel
Banco de dadosPostgreSQL 15Persistência principal
CacheRedisCache de sessões e dados temporários
MensageriaRabbitMQComunicação assíncrona entre API e Solver
AutenticaçãoKeycloak 25.0SSO com OAuth2/OIDC

Arquitetura

O fluxo de dados principal é:

  1. Web/Mobile se comunica com a API via HTTP REST
  2. API gerencia todas as entidades no PostgreSQL
  3. Para geração de horário, a API envia uma mensagem para o RabbitMQ
  4. O Gerar Horário (solver) consome a mensagem, processa e retorna o resultado pela fila
  5. Keycloak cuida da autenticação e autorização para todos os serviços

Para detalhes sobre a arquitetura, consulte os ADRs na seção de requisitos.