Feature: Home
Introdução ao documento
Este documento descreve a home autenticada do hub, que muda conforme o papel do usuário e habilita acessos rápidos para sala, agenda, atividades, quiz, recuperação e links externos. Evidências: src/app/(protected-routes)/home/page.tsx:18-67, src/components/Home/HomeAluno.component.tsx:127-224, src/components/Home/HomeFacilitador.component.tsx:83-163.
Versionamento
- Documento criado em
2026-03-20. - Revisar quando mudarem
home/page.tsx,HomeAluno,HomeFacilitadorouStatusService. Evidências:src/app/(protected-routes)/home/page.tsx:18-67,src/components/Home/HomeAluno.component.tsx:47-224,src/components/Home/HomeFacilitador.component.tsx:44-163,src/services/StatusService.ts:31-113.
Referencial teórico
O fluxo foi derivado da página protegida /home, do layout autenticado e dos dois componentes de home por perfil. Evidências: src/app/(protected-routes)/layout.tsx:21-74, src/app/(protected-routes)/home/page.tsx:18-67, src/components/Home/HomeAluno.component.tsx:47-224, src/components/Home/HomeFacilitador.component.tsx:44-163.
Visão geral
- A página exige sessão e redireciona para
/quando o usuário não está autenticado. Evidências:src/app/(protected-routes)/home/page.tsx:19-23. - O backend de tema pode colocar o hub em manutenção. Evidências:
src/app/(protected-routes)/home/page.tsx:26-36. - Participantes e facilitadores recebem dashboards diferentes com cards habilitados por
settingse flags da turma. Evidências:src/app/(protected-routes)/home/page.tsx:58-64,src/components/Home/HomeAluno.component.tsx:133-185,src/components/Home/HomeFacilitador.component.tsx:95-149.
Atores
- Participante. Evidências:
src/components/Home/HomeAluno.component.tsx:133-223. - Facilitador e supervisor. Evidências:
src/components/Home/HomeFacilitador.component.tsx:95-149. - Serviços externos de turma, tema, agenda e recuperação. Evidências:
src/app/(protected-routes)/home/page.tsx:25-55,src/services/StatusService.ts:46-90.
Pré-condições
- Sessão válida. Evidências:
src/app/(protected-routes)/home/page.tsx:19-23. - Dados de tema e de turma acessíveis. Evidências:
src/app/(protected-routes)/home/page.tsx:25-27,src/app/(protected-routes)/layout.tsx:29-40. classIdeclassesDatacarregados no contexto para renderização client-side. Evidências:src/app/providers/UserProvider.tsx:86-139,src/components/Home/HomeAluno.component.tsx:114-118,src/components/Home/HomeFacilitador.component.tsx:58-60.
Fluxo principal
- O servidor valida sessão, identifica papel do usuário e carrega
settings. Evidências:src/app/(protected-routes)/home/page.tsx:19-27. - Se calendário estiver habilitado para o perfil, a página tenta localizar ou criar o usuário da agenda pelo CPF. Evidências:
src/app/(protected-routes)/home/page.tsx:38-55. - A home renderiza
HomeFacilitadorpara admin/supervisor eHomeAlunopara participante. Evidências:src/app/(protected-routes)/home/page.tsx:58-64. - Os cards exibem links rápidos condicionados por flags de turma e tema. Evidências:
src/components/Home/HomeAluno.component.tsx:133-185,src/components/Home/HomeFacilitador.component.tsx:95-149.
Fluxos alternativos
- Se
settings.maintenance_modeestiver ativo, a home bloqueia o acesso comNotifyModal. Evidências:src/app/(protected-routes)/home/page.tsx:28-36. - Se a turma tiver recuperação pendente, a home do participante exibe
MeetingRecoverCard. Evidências:src/components/Home/HomeAluno.component.tsx:188-223. - Se houver recuperação expirada ainda não mostrada, a home abre
MeetingRecoverModale marcahas_expired_recovery_shown. Evidências:src/components/Home/HomeAluno.component.tsx:58-79,src/components/Home/HomeAluno.component.tsx:214-223.
Regras de negócio
- O card de sala ao vivo só aparece quando
enable_roomestiver ativo no tema e não estiver desabilitado na turma. Evidências:src/components/Home/HomeAluno.component.tsx:133-143,src/components/Home/HomeFacilitador.component.tsx:96-107. - O card de mentorias/agenda só aparece quando
enable_calendarestiver ativo no tema e na turma. Evidências:src/components/Home/HomeAluno.component.tsx:145-154,src/components/Home/HomeFacilitador.component.tsx:108-118. - O card de atividades só aparece quando há atividades estratégicas habilitadas ou recuperação habilitada, conforme o perfil. Evidências:
src/components/Home/HomeAluno.component.tsx:118-123,src/components/Home/HomeAluno.component.tsx:156-165,src/components/Home/HomeFacilitador.component.tsx:62-67,src/components/Home/HomeFacilitador.component.tsx:119-129. - O card de quiz do participante usa o
courses.slugda turma quando disponível. Evidências:src/components/Home/HomeAluno.component.tsx:123-125,src/components/Home/HomeAluno.component.tsx:177-185.
Estados possíveis
manutencao: bloqueio da home. Evidências:src/app/(protected-routes)/home/page.tsx:28-36.participante: home com mentorias, atividades, jornada, quiz e recuperação. Evidências:src/components/Home/HomeAluno.component.tsx:127-224.facilitador: home com sala, agenda, gestão de atividades, turmas e quiz. Evidências:src/components/Home/HomeFacilitador.component.tsx:83-163.
Endpoints envolvidos
- Ver OpenAPI:
GET /api/classes,GET /api/class/{id},GET /api/cycles/recovery-status,GET /api/submissions,GET /api/submissions/status-sumary. - A criação de usuário de agenda ocorre por serviço externo, sem rota App Router local dedicada nesta página.
Evidências: src/app/(protected-routes)/home/page.tsx:25-55, src/services/StatusService.ts:46-90, src/components/Home/HomeFacilitador.component.tsx:52-71.
Dados impactados
- Ver model.md:
Class,Cycle,Submission,MeetingRecovere estado de turma atual no contexto. - A home também altera o estado client-side
has_expired_recovery_shown. Evidências:src/components/Home/HomeAluno.component.tsx:64-79.
Pendências
- O schema exato de
settingse dos blocosparticipant/facilitatornão está formalizado em documentação externa. - A home depende de vários links externos via
HomeLinks, mas o contrato desses links não está centralizado em um documento único.