VitalTech - Sprint 2: Resumo de Entrega
A integração original da Sprint 2 foi realizada pelo PR #43. Após o merge, uma nova verificação identificou inconsistências na autenticação de usuários recém-cadastrados, na sincronização das listagens e na validação de duplicidades. As correções complementares foram implementadas na branch fix/integracao-sprint2
User Stories Implementadas
| US | Título | Status |
|---|---|---|
| US08 | Autenticar usuário no sistema | Implementada e verificada após as correções |
| US09 | Encerrar sessão do usuário | Implementada e verificada após as correções |
| US01 | Cadastrar residente | Implementada e verificada após as correções |
| US10 | Cadastrar usuário | Implementada e verificada após as correções |
Autenticação e Sessão
Fluxo de login
- O
authServicetenta autenticar pela API mock na porta 3001. - Uma resposta HTTP
401rejeita as credenciais sem consultar o cache local. - O fallback pelo IndexedDB ocorre somente quando a API está inacessível.
- Ao autenticar pela API, o usuário remoto é reconciliado com o registro local pelo login, preservando o ID local e armazenando o ID remoto separadamente.
- A sessão é armazenada no
sessionStorage, com expiração após 15 minutos de inatividade. - Senhas não são incluídas nos dados da sessão.
Usuários padrão
| Login | Perfil | Senha |
|---|---|---|
gestor |
Gestor | 123456 |
cuidador |
Cuidador | 123456 |
multidisciplinar |
Equipe Multidisciplinar | 123456 |
Logout
- Limpa a sessão armazenada no navegador.
- Tenta notificar a API sem impedir o logout em caso de indisponibilidade.
- Redireciona o usuário para
/login.
Permissões por Perfil
| Perfil | Permissões disponíveis |
|---|---|
| Gestor | Listar e cadastrar usuários; listar, cadastrar e editar residentes |
| Cuidador | Listar residentes |
| Equipe Multidisciplinar | Listar residentes |
Somente o Gestor pode acessar as rotas administrativas /usuarios e /cadastro. Usuários sem permissão são redirecionados para /residentes.
Persistência e Sincronização
O incremento utiliza IndexedDB, por meio do Dexie, em conjunto com o backend mock em json-server.
- Cadastros de usuários e residentes são persistidos localmente e enviados ao backend quando ele está disponível.
- As listagens consultam o backend e atualizam o armazenamento local.
- Usuários são reconciliados pelo login.
- Residentes são reconciliados pelo CPF.
- Login e CPF duplicados são verificados localmente e no backend.
- O backend responde com HTTP
409quando identifica uma duplicidade.
A sincronização bidirecional completa, com fila de operações e resolução de conflitos offline, permanece fora do escopo desta entrega.
Endpoints utilizados
| Método | Endpoint | Finalidade |
|---|---|---|
| POST | /auth/login |
Autenticar usuário |
| POST | /auth/logout |
Notificar encerramento de sessão |
| GET/POST | /usuarios |
Consultar e cadastrar usuários |
| GET/POST | /residentes |
Consultar e cadastrar residentes |
Verificação Técnica
- Cadastro de usuário com perfil Equipe concluído.
- Logout do Gestor e login com o novo usuário concluídos.
- Dados existentes no backend carregados nas listagens locais.
- Login e CPF duplicados rejeitados.
- Build de produção concluído.
- 21 de 21 testes automatizados passando.
Itens Posteriores
- Backend definitivo em substituição ao json-server.
- Sincronização offline completa e resolução de conflitos.
- Testes ponta a ponta.
- Edição e histórico de alterações de residentes.
- Componente reutilizável de toast/snackbar.
- Adequação completa dos alvos de toque para tablets.
Como Rodar Localmente
# Terminal 1 - backend mock
cd app/backend
npm install
npm run mock
# Terminal 2 - frontend
cd app/frontend
npm install
npm run dev
Credencial principal de teste: gestor / 123456.
Histórico de Revisão
| Data | Versão | Descrição | Autor |
|---|---|---|---|
| 15/06/2026 | 2.0 | Atualização do resumo conforme a integração final, as correções posteriores e a verificação técnica com 21 testes. | Enzo Menali |