Sprint Review -- Sprint 10¶
Objetivo da Sprint¶
A Sprint 10 marcou a fase final de estabilização da Release 2 (R2) do ProtectKids, com foco na consolidação da arquitetura, validação das entregas realizadas e preparação do projeto para seu fechamento técnico. Diferentemente das sprints anteriores, esta iteração não teve como prioridade a introdução de novas funcionalidades, mas sim a revisão, padronização e fortalecimento dos componentes já implementados.
Nesta etapa, a equipe concentrou seus esforços em garantir que o sistema estivesse mais consistente, robusto e alinhado aos objetivos definidos para a R2. Foram priorizados ajustes na arquitetura, validação do pipeline de dados, revisão da integração entre backend, banco de dados e frontend, conferência dos testes, organização da documentação e preparação dos encaminhamentos finais relacionados ao deploy.
A sprint também teve como objetivo encerrar pendências abertas, revisar pontos críticos identificados nas etapas anteriores e garantir que a aplicação pudesse ser apresentada de forma mais estável e coerente. A equipe buscou assegurar que as funcionalidades implementadas ao longo da Release 2 estivessem documentadas, testadas e minimamente integradas, evitando que a entrega final apresentasse inconsistências entre código, documentação, interface e infraestrutura.
Ao final da Sprint 10, espera-se que o ProtectKids esteja com sua base técnica consolidada, com os principais fluxos validados, documentação revisada, responsabilidades finais organizadas e ambiente preparado para apresentação e avaliação. Essa sprint representa, portanto, o encerramento do ciclo de desenvolvimento da R2, funcionando como uma etapa de conferência, correção e consolidação do projeto.¶
Entregas Realizadas¶
Backend & Pipeline de Dados¶
- Resiliência: Implementação de mecanismos de retry em requisições HTTP do crawler e centralização de tratamento de erros na API (incluindo erro 404).
- Consolidação do Crawler: Estabilização do crawler do Senado Federal e correção de instabilidades em IDs de autores.
- Otimização: Filtros dinâmicos na listagem geral, adição de campo de "Título" nas proposições e limpeza segura de arquivos temporários de PDFs.
Inteligência Artificial (NLP)¶
- Refinamento: Otimização e correção do modelo de Processamento de Linguagem Natural utilizando a biblioteca spaCy, garantindo maior estabilidade na classificação textual.
DevOps & Infraestrutura¶
- Ambiente Local: Estabilização do ambiente local via Docker com build real da aplicação.
- Orquestração: Padronização do arquivo
docker-compose.ymle inclusão de healthcheck do banco de dados antes da inicialização da API. - Padronização: Uniformização das variáveis de ambiente do pipeline de ETL.
Frontend¶
- Integração Total: Conexão ponta a ponta dos endpoints do backend com a nova página principal.
- Consistência Visual: Refatoração de arquivos de estilo, aplicação do sistema de cores global e atualização da UI baseada no layout do Figma.
Documentação & Qualidade¶
- Testes de Software: Configuração de testes automatizados com Pytest e geração de relatórios de cobertura de código.
- Alinhamento: Atualização do Story Map, dos contratos de API e da documentação de requisitos.
- Design Docs: Atualização visual da documentação técnica via MkDocs.
Quadro de Issues da Sprint¶
| ID | Descrição da Issue | Responsável | Status |
Issues da Sprint¶
| Issue | Descrição | Responsável | Status |
|---|---|---|---|
| #106 | Implementação de mecanismo de retry nas requisições HTTP do crawler | @Danielly-Mendes | ✅ Concluído |
| #107 | Otimização de payload e novos filtros na listagem geral | @augustogmedeiros | ✅ Concluído |
| #108 | Flexibilização da busca por ID e tratamento de erro 404 | @augustogmedeiros | ✅ Concluído |
| #109 | Adição do campo dinâmico "Título" nas proposições | @augustogmedeiros | ✅ Concluído |
| #110 | Otimização do modelo de Inteligência Artificial (spaCy) | @augustogmedeiros | ✅ Concluído |
| #111 | Estabilização do ambiente local e healthcheck do banco | @VegasVvegas | ✅ Concluído |
| #117 | Configuração do ambiente de testes com Pytest e cobertura | @marispmorais | ✅ Concluído |
| #120 | Atualização da documentação de requisitos e Story Map | @augustogmedeiros | ✅ Concluído |
| #123 | Revisão e padronização do docker-compose.yml | @augustogmedeiros | ✅ Concluído |
| #127 | Atualização da página inicial conforme novo layout | @wandinhawright | ✅ Concluído |
| #128 | Integração completa entre Backend e Frontend | @wandinhawright | ✅ Concluído |
| #133 | Refatoração do sistema global de cores | @wandinhawright | ✅ Concluído |
| #143 | Ajustes da ETL para coleta ampliada e classificação textual | @augustogmedeiros | ✅ Concluído |
| #146 | Correções de qualidade identificadas pelo SonarQube | @cgbriel28 | ✅ Concluído |
| #155 | Implementação da extração de redes sociais de parlamentares | @augustogmedeiros | ✅ Concluído |
| #156 | Aperfeiçoamento da UI/UX e responsividade do painel principal | @augustogmedeiros | ✅ Concluído |
| #157 | Integração do SonarQube ao Frontend | @augustogmedeiros | ✅ Concluído |
| #159 | Testes da rota raiz e listagem geral de proposições | @marispmorais | ✅ Concluído |
| #160 | Testes dos filtros de origem Câmara/Senado | @marispmorais | ✅ Concluído |
| #161 | Testes da busca por ID e validação de existência | @marispmorais | ✅ Concluído |
| #163 | Build de produção do Frontend com Docker e Nginx | @augustogmedeiros | ✅ Concluído |
| #164 | Refinamento de filtros analíticos e rankings do Backend | @augustogmedeiros | ✅ Concluído |
| #165 | Implementação do crawler de tramitações do Senado | @augustogmedeiros | ✅ Concluído |
| #167 | Testes das tramitações de proposições | @marispmorais | ✅ Concluído |
| #168 | Testes dos endpoints de Analytics | @marispmorais | ✅ Concluído |
| #180 | Documentação das atas de reunião das Sprints 04–07 | @cgbriel28 | ✅ Concluído |
| #181 | Documentação das atas de reunião das Sprints 08–10 | @cgbriel28 | ✅ Concluído |
| #182 | Documentação da Sprint 10 | @cgbriel28 | ✅ Concluído |
| #185 | Revisão final do índice da documentação | @cgbriel28 | ✅ Concluído |
🔗 Pull Requests Relacionadas¶
- PR #113 & #114 — Correção e refatoração do backend crawler.
- PR #121 — Fix e estabilização do crawler.
- PR #122 — Revisão de contrato da API backend/frontend.
- PR #123 — Padronização do docker-compose e infraestrutura.
- PR #136 — Aplicação do novo sistema de cores no frontend.
Resultados Obtidos¶
Marco Alcançado: O encerramento da Release 2 entrega o ProtectKids em seu estado mais seguro, integrado e previsível até o momento.
- Confiabilidade Elevada: Mecanismos de tolerância a falhas (retries e tratamentos HTTP) mitigarão significativamente quedas inesperadas de coleta.
- Paridade de Ambientes: Desenvolvedores e ambientes de produção passam a compartilhar a mesma consistência Docker.
- Qualidade de Software: Entrada oficial da cobertura de testes com Pytest, garantindo sustentabilidade para o código futuro.
Conclusão¶
A Sprint 10 marcou o encerramento da Release 2 do ProtectKids e consolidou o ciclo de desenvolvimento iniciado nas sprints anteriores. Nesta etapa, as principais pendências foram finalizadas, os contratos de comunicação entre as frentes foram alinhados e a infraestrutura do projeto foi revisada para garantir maior estabilidade, organização e segurança na entrega.
Com a finalização dessa sprint, o ProtectKids passou a contar com uma base mais sólida e madura, reunindo backend, frontend, banco de dados, pipeline de dados, testes, documentação e infraestrutura de forma mais integrada. A equipe conseguiu reduzir riscos técnicos, corrigir inconsistências e fortalecer a estrutura necessária para futuras expansões do sistema.
Além dos avanços técnicos, a Sprint 10 também evidenciou o crescimento da equipe ao longo do projeto. O grupo amadureceu na forma de se comunicar, dividir responsabilidades, revisar entregas e lidar com problemas reais de desenvolvimento. O trabalho em equipe, os estudos, as correções e os alinhamentos constantes foram fundamentais para transformar dificuldades em aprendizado e para melhorar a qualidade final do projeto.
Dessa forma, a Sprint 10 encerra a Release 2 como uma etapa de conclusão, aprendizado e consolidação. O ProtectKids finaliza esse ciclo com uma estrutura mais estável e preparada para evoluções futuras, enquanto a equipe encerra o processo com maior maturidade técnica, colaborativa e organizacional.
Ata da Sprint 10 - Deploy e consolidação final¶
Pauta¶
- Consolidar entrega final.
- Discutir deploy e infraestrutura.
- Garantir integração entre frontend, backend e banco.
O que foi conversado¶
- Foi conversado que a fase final exigia cuidado para não quebrar o que já estava funcionando.
- Yara conduziu discussões de infraestrutura, Docker, variáveis de ambiente, deploy e integração entre serviços.
- Augusto fez correções finais, apoiou backend e ajudou na integração geral.
- Mariana validou dados, testes e funcionamento das funcionalidades.
- Wanda acompanhou ajustes de interface e Figma.
- Carlos organizou as pendências finais da entrega.
- Danielly apoiou revisão final da documentação e dos registros.
Deliberações¶
- Foi decidido preparar deploy com atenção a variáveis de ambiente e conexão com banco.
- O grupo deliberou que senhas e configurações sensíveis não deveriam ser expostas no repositório.
- Foi decidido revisar a integração entre serviços antes da entrega.
- A documentação final deveria refletir backend, frontend, dados, infraestrutura e deploy.
Encaminhamentos¶
- Yara seguiria com infraestrutura e deploy.
- Augusto apoiaria correções finais e integração.
- Mariana validaria testes e dados.
- Wanda revisaria interface.
- Carlos e Danielly consolidariam organização e documentação final.