Olá. Ao procurar informações sobre escolas, eu queria reduzir a inconveniência de ter que alternar entre vários sites e arquivos Excel, então criei o Como É a Nossa Escola.
Todo o processo de desenvolvimento foi conduzido no estilo de vibe coding. Não foi um projeto em que pedi para a IA gerar o código uma vez e encerrei; eu dividi os requisitos em documentos e repeti o processo de comparar os resultados da implementação com os dados reais e corrigir os erros novamente. Em especial, considerei que, nos dados escolares, era mais importante não vinculá-los incorretamente a outra escola do que apenas ter uma interface convincente, então dediquei a maior parte do tempo ao mapeamento e à validação.
No serviço, é possível pesquisar pelo nome da escola, comparar escolas do mesmo nível de ensino, comparar dados públicos por região, além de verificar dados de desempenho acadêmico por disciplina e os resultados das deliberações do comitê de medidas contra a violência escolar. Os números confirmados na fonte original e os indicadores calculados internamente são exibidos de forma separada.
Composição dos dados
- Informações básicas da escola
- Turmas e número de alunos
- Número de professores
- Informações de movimentação de alunos (transferências de entrada e saída)
- Horas de conclusão de treinamento em segurança
- Resultados do comitê de medidas contra a violência escolar
- Desempenho acadêmico por disciplina (apenas a pontuação média é refletida)
Stack técnica
- Next.js App Router, TypeScript, Tailwind CSS
- Firebase Firestore e Firebase Admin SDK
- Deploy na Vercel e automação com GitHub Actions
search-index.jsonestático para busca no navegador- JSON estático para páginas de detalhes da escola, ranking e comparação
- Coleta de dados do NEIS e School Info, com aplicação de alterações baseada em
row_hash - Ferramenta de importação manual de materiais públicos que identifica a estrutura de tabelas de arquivos XLS do School Info
Partes que foram mais difíceis do que eu esperava ao criar
O mais complicado foi a correspondência dos nomes das escolas. Havia escolas com o mesmo nome, escolas que mudaram de nome, escolas fechadas e escolas que diferiam apenas pelo nível de ensino, então vincular apenas pelo nome podia causar mapeamentos incorretos. Passei a priorizar o uso do código da escola, das informações da secretaria de educação, da região e do nível de ensino, e os itens que não podiam ser confirmados automaticamente eram deixados como alvos de verificação separada.
Os arquivos XLS de desempenho acadêmico e de divulgação sobre violência escolar também não tinham exatamente a mesma posição de colunas em todos os arquivos. Se eu lesse fixando um número específico de coluna, valores incorretos que pareciam números válidos poderiam ser inseridos, então adicionei uma etapa de validação para distinguir o formato verificando o título da tabela e os cabeçalhos, e para não refletir valores fora do intervalo.
Ainda não há comentários.