Pular para o conteúdo principal

Chamada Escolar — Console (cpe-console)

Backend e console de gestão da Chamada Escolar: configura as chamadas, recebe as inscrições do portal público, pontua e classifica os candidatos e gerencia a fila de espera. Sincroniza dados com o sistema acadêmico (Syens).

Manual de uso: Chamada Escolar.

Stack

ItemTecnologia
LinguagemRuby 3.x
FrameworkRails 7.2
BancoPostgreSQL
AutorizaçãoPundit (app/policies)
JobsSidekiq
Auditoriaaudited
APIJWT
Front-endReact 18 + esbuild

Organização do código

Destaque para app/interactor/ (interactors que orquestram pontuação e classificação), além de policies/, serializers/, services/, jobs/ e sidekiq/. Os controllers de API ficam em app/controllers/api/v1.

Modelos centrais: public_call (chamada), subscription (inscrição), classification, score, offer, question/answer, customer (rede/tenant), school, school_year, curriculum, além de distance_log/geocoding_log (integração com o Google Maps) e sync (sincronização com o acadêmico).

Pontuação e classificação

O processamento tem duas etapas: pontuar os candidatos e depois classificar.

  • As regras de pontuação vivem nos interactors, em classes Score.
  • Quais regras pontuam é definido pela variável de ambiente SCORE_METHODS, por exemplo: disability, maria_penha_law, ciase, distance, school_neighborhood, same_school_sibling, school_zone, sibling_in_school.
  • Todo ano os critérios devem ser revisados (pesos por distância, novos critérios) e, se necessário, um novo Score é implementado.

A lógica funcional dessas regras está descrita no manual, em Processamento e Classificação.

Configuração

Configs e segredos via variáveis de ambiente, acessadas por um objeto Settings (não use ENV espalhado pelo código).

Deploy

Imagem Docker publicada no Amazon ECR (chamada-publica):

# (passos de shell, ilustrativos)
# docker build -> docker tag <conta>.dkr.ecr.us-east-1.amazonaws.com/chamada-publica:TAG -> docker push

Infraestrutura AWS provisionada pelo InfraSpawn (cpe.tf).