CPE Inscrição
Repositório: cpe-inscricao
Portal público (SPA em React) onde a população faz a inscrição da Chamada Escolar. É a "ponta" que as famílias acessam; toda a regra de negócio fica no console, cuja API este app consome.
Manual de uso: Chamada Escolar.
Acesso, contexto e permissões
Por ser um portal público, não há cadastro de usuários, login, perfis nem menus por permissão — qualquer cidadão acessa.
- Identificação por documento. O responsável se identifica pelo CPF; a partir daí o portal monta e consulta as inscrições daquela pessoa.
- O que aparece é controlado pela chamada. As rotas são renderizadas conforme a
configuração da chamada vinda da API (
appService.getLocalPublicCall()): se um recurso está desligado para aquele cliente/edição, a tela nem é montada. - Antifraude. O reCAPTCHA protege o envio de inscrições (validado contra o
console em
/public_call/validate_recaptcha). - Contexto. Quem define cliente, regras e identidade visual é o console; o portal apenas reflete o que a API entrega.
Stack
- Base: React (Create React App /
react-scripts), Node 18.17.1 - UI: Material UI (v4)
- Rotas: React Router 5
- Monitoramento: Sentry
Bibliotecas de apoio: react-google-recaptcha (o bloqueador de robôs descrito no
manual), cpf-cnpj-validator e react-text-mask (validação e máscara de
documentos), moment e react-helmet.
Como rodar localmente
- Use o Node do
.tool-versions(18.17.1). - Ajuste a configuração em
src/utils/constants.js(veja a seção seguinte). - Rode em desenvolvimento com
npm start(react-scripts start) oudocker-compose up— a porta padrão é a 3002. - Para produção, gere o build estático com
npm run build.
Configuração (no lugar do ENV)
Este app não usa arquivo .env: a configuração fica em
src/utils/constants.js. O que mora ali:
app.name— nome exibido no portal.api.currentVersione os caminhos da API (public_call,offers,addresses,customer...) — endpoints relativos consumidos do console.params.recaptcha— site key do reCAPTCHA.params.sentry.dsn— DSN do Sentry para monitoramento de erros.routes— definição das rotas do portal.
Padrões do projeto
Organização em src/:
screens/— telas do fluxo:Home,Instructions,PreEnrollmentCheck,Subscriptions(Create,Search),RenewEnrollments(ForgotPassword,Request),RequestInclusion,WaitingList,NotFound.api/eservices/— comunicação com a API do console.components/,hooks/,routes.js.utils/constants.js— configuração central.
Padronização de código com Prettier.
BigPicture
Deploy
Build estático publicado na Cloudflare. A imagem Docker de produção também é
publicada no Amazon ECR (chamada-publica).