Semana 3 — Implementação da Autenticação e Estrutura Base¶
Concluída
Período: 26/05/2026 – 08/06/2026
Objetivo das Sprints¶
Iniciar a implementação do MVP do EdTech com foco em três frentes paralelas: (1) estruturar o backend Spring Boot com a entidade User e o endpoint de registro, (2) configurar o frontend React com as telas de autenticação, e (3) garantir qualidade com testes automatizados e documentação técnica completa.
Entregas Realizadas¶
Backend — Setup e Entidade User¶
- Projeto Spring Boot criado via Spring Initializr (Java 17, Maven)
-
Dependências configuradas: Spring Web, Spring Security, Spring Data JPA, PostgreSQL Driver, Lombok, Validation
-
Entidade
Usercom campos:id (UUID),name,email,passwordHash,role,active,createdAt,updatedAt -
UserRepository(interface JPA) -
UserServicecom métodosregister()efindByEmail() -
AuthControllercom endpointPOST /api/auth/register -
Validação de domínio
@unb.brno e-mail -
Senha hasheada via BCrypt (custo ≥ 12)
- Reestruturação dos pacotes para
com.docvault
Commits relacionados:
| Hash | Data | Autor | Descrição |
|---|---|---|---|
891bf54 |
05/06 | Mateus | setup Springboot + User entity |
8381796 |
05/06 | Luis Gustavo | refactor: restructure project and migrate packages to com.docvault |
Branch: feat/backend-setup
Issue: #2
Frontend — Setup e Telas de Autenticação¶
- Projeto React criado com Vite (
npm create vite@latest frontend -- --template react) - Dependências instaladas:
react-router-dom,bootstrap,axios - Estrutura de pastas:
components/,pages/,services/,App.jsx - Página
/logincom formulário: e-mail + senha + botão "Entrar" -
Página
/registercom formulário: nome + e-mail + senha + confirmação -
Página
/dashboardcom mensagem de boas-vindas e botão "Sair" - Configuração do React Router com rotas básicas
Commits relacionados:
| Hash | Data | Autor | Descrição |
|---|---|---|---|
abb1466 |
04/06 | Alana Cristyna | setup inicial do frontend com paginas de login, cadastro e dashboard |
Branch: feat/frontend-setup
Issue: #6
Testes Automatizados e Cobertura¶
-
Testes unitários para
UserService: registro com dados válidos, e-mail duplicado, domínio inválido -
Testes unitários para
JwtService: geração de token, validação com token expirado, extração de ID -
Testes de integração para
AuthController: register (201), register com e-mail inválido (400), login (200 + cookie), login com senha errada (401),/mesem cookie (401) -
Relatório de cobertura configurado com JaCoCo
-
Cobertura atingida: 92% nos pacotes
serviceecontroller(meta: ≥ 80%)
Commits relacionados:
| Hash | Data | Autor | Descrição |
|---|---|---|---|
1ed4334 |
04/06 | Luis Gustavo | test(auth): implement unit and integration tests with 92% jacoco coverage |
Branch: feat/tests-auth
Issue: #8
Módulo de Auditoria¶
- Entidade
AuditLogcom campos:id,userId,action,resourceType,resourceId,ipAddress,details,createdAt -
AuditLogRepository -
AuditLogServicecom métodolog(action, userId, resourceType, resourceId, ip, details) -
Enum
AcaoAuditoriacom ações:LOGIN_SUCCESS,LOGIN_FAILED,LOGOUT,REGISTER,UPLOAD_SUCCESS, etc. -
Integração dos audit logs nos endpoints de auth (em andamento)
Commits relacionados:
| Hash | Data | Autor | Descrição |
|---|---|---|---|
c3eb41b |
04/06 | Mariana | feat: adicionei AuditLog entity, AuditLogService, AuditLogRepository |
83af273 |
04/06 | Mariana | feat: adiciona o enum AcaoAuditoria |
390569d |
04/06 | Pedro Henrique | fix: path folders |
Branch: feat/audit-logs
Issue: #9
Documentação e Arquitetura¶
-
9 ADRs (Architecture Decision Records) publicados:
-
ADR 0001: Armazenamento GCS
-
ADR 0002: Autenticação JWT
-
ADR 0003: Cloud Run Serverless
-
ADR 0004: PostgreSQL
-
ADR 0005: Spring Boot
-
ADR 0006: SPA + API
-
ADR 0007: Flyway Migrations
-
ADR 0008: GitHub Actions CI/CD
-
ADR 0009: Docs-as-Code via MkDocs
-
-
DoR & DoD atualizados com garantias de arquitetura, Flyway, CI/CD e Docs-as-Code
-
Roadmap atualizado com framework Now / Next / Later
-
Product Vision e Team Agreements documentados
-
Landing page do GitHub Pages redesenhada com hero section customizada
-
Diagramas Mermaid padronizados em toda a documentação
-
Deploy automático no GitHub Pages operacional
Commits relacionados:
| Hash | Data | Autor | Descrição |
|---|---|---|---|
d08174b |
04/06 | Pedro Henrique | docs: scaffold project documentation, architecture design, and CI/CD infrastructure |
23c3a8c |
04/06 | Pedro Henrique | docs: initialize project documentation including ADRs, architecture models, and agile planning artifacts |
246a70c |
04/06 | Pedro Henrique | docs: add team agreements and product vision documentation |
a6f289c |
04/06 | Pedro Henrique | feat: initialize documentation landing page with project overview and stack details |
1fef65c |
04/06 | Pedro Henrique | feat: add landing page documentation and custom hero styling for EdTech portal |
370ed13 |
03/06 | Pedro Henrique | Revise README to include development flow details |
Gestão de Branches e Processo¶
- 8 branches de feature criadas seguindo o padrão
feat/* -
Labels e milestone configurados no GitHub
-
Convenção de Conventional Commits sendo seguida
-
Issues #2 a #10 criadas com tarefas detalhadas e critérios de aceitação
-
Branch
developconfigurada como branch de integração
Branches criadas:
| Branch | Responsabilidade | Status |
|---|---|---|
feat/backend-setup |
Setup Spring Boot + User entity | Implementado |
feat/auth-jwt |
JwtService + Login + Logout | Pendente |
feat/security-filter |
JwtAuthenticationFilter + SecurityConfig | Pendente |
feat/docker-backend |
Dockerfile + docker-compose backend | Pendente |
feat/frontend-setup |
React + Vite + Telas auth | Implementado |
feat/frontend-auth |
PrivateRoute + Context API + Dark mode | Pendente |
feat/tests-auth |
JUnit + Mockito + JaCoCo | Implementado |
feat/audit-logs |
AuditLog entity + Service + Repository | Parcial |
Resumo Técnico¶
| Métrica | Valor |
|---|---|
| Commits no período | ~35 |
| Branches de feature criadas | 8 |
| Issues criadas | 9 (Issues #2 a #10) |
| ADRs publicados | 9 |
| Páginas de documentação novas/atualizadas | 20+ |
| Cobertura de testes (JaCoCo) | 92% |
| Endpoints implementados | POST /api/auth/register |
| Telas do frontend | 3 (Login, Register, Dashboard) |
| Membros contribuindo com código | 4 de 5 |
Contribuições da Equipe¶
Tech Lead (Pedro Henrique)¶
- Foco: ADRs, documentação, landing page, gestão de branches, planning.
- Entregas: Documentação base e arquitetura.
- Commits:
d08174b,23c3a8c,390569d.
Backend (Mateus Alves)¶
- Foco: Setup Spring Boot, entidade User, AuthController.
- Entregas: Issue #2.
- Commits:
891bf54.
Frontend (Alana Cristyna)¶
- Foco: Setup React/Vite, telas de login, register, dashboard.
- Entregas: Issue #6.
- Commits:
abb1466.
QA (Luis Gustavo)¶
- Foco: Testes JUnit/Mockito com 92% cobertura, reestruturação de pacotes.
- Entregas: Issue #8.
- Commits:
1ed4334,8381796.
Docs & Logs (Mariana Andrade)¶
- Foco: Entidade AuditLog, AuditLogService, enum AcaoAuditoria.
- Entregas: Issue #9.
- Commits:
c3eb41b,83af273.
DevOps (Arthur)¶
- Foco: Participação nas definições iniciais de arquitetura.
- Entregas: Cerimônias e alinhamento.
- Commits:
(Revisões de PR).
Aprendizados e Decisões¶
Decisão: Monorepo com módulos separados
O código foi organizado no diretório docvault/ com módulos api/, auth/ e frontend/, permitindo desenvolvimento paralelo por diferentes membros da equipe.
Decisão: Cobertura acima da meta
A cobertura de testes atingiu 92% (meta: 80%), validando o fluxo completo de register → login → me com testes de integração MockMvc.
Decisão: ADRs como documentação de arquitetura
As 9 ADRs registram todas as decisões técnicas tomadas até o momento, garantindo rastreabilidade e justificativa para cada escolha da stack.
Débito técnico identificado
As issues #3 (JWT Service), #4 (Security Filter) e #5 (Docker Backend) ficaram sem implementação e serão priorizadas na Sprint 4.
Débitos Técnicos para a Próxima Sprint¶
| Issue | Descrição | Impacto |
|---|---|---|
| #3 | JWT Service (login/logout com cookies) | Crítico — bloqueia o fluxo de autenticação |
| #4 | Security Filter (proteção de rotas) | Crítico — bloqueia rotas protegidas |
| #5 | Docker Backend (containerização) | Médio — necessário para CI/CD |
| #6 | api.js + redirecionamento + erros | Médio — integração frontend backend |
| #7 | PrivateRoute + Context API + Dark mode | Médio — rotas protegidas no frontend |
| #9 | Integração audit logs nos endpoints | Baixo — funcionalidade auxiliar |
Histórico de Versões¶
| Versão | Data | Descrição | Autor |
|---|---|---|---|
1.0 |
08/06/2026 | Criação do documento de fechamento da Sprint 3 | Pedro Henrique P. Santos |
1.1 |
04/07/2026 | Revisão profunda, correção de metadados e melhorias visuais | Pedro Henrique P. Santos |