Skip to content

[DASHBOARD Q.A - LOGIN] ESTRUTURA BASE DA TELA DE LOGIN #30

Description

@GabrielAderaldo

Este card é responsável por fazer a tela de login funcionar de verdade.
Aqui o botão não é só enfeite: ele dispara o processo de autenticação, controla o estado da tela, gera e guarda a sessão, e informa à aplicação se o usuário está autenticado ou não.

Toda a lógica de controle de estado deve estar conectada — sem se preocupar com estilos, identidade visual ou beleza da tela.

Caution

Importante para QA e P.O.:
Esta etapa não deve ser avaliada por aparência. O foco é funcionalidade interna e comportamento dos estados.
É esperado que a tela seja feia, básica e possivelmente sem texto estilizado.


🎯 Objetivo:

Implementar os estados de controle de login, de forma reativa, clara e funcional, respeitando o fluxo esperado para o OAuth GitHub e o ciclo de sessão.


🧩 Estados obrigatórios e comportamentos esperados:

Estado Quando aparece O que deve acontecer visualmente
Idle Estado inicial Tela mostra botão de login normalmente
Loading Após clicar no botão de login Mostra indicador de carregamento ou texto simples
Authenticated Quando o OAuth retorna com sucesso Token armazenado, e app entende que está logado
Error Quando o OAuth falha ou algo sai errado Mensagem de erro visível (sem estilização obrigatória)
LoggedOut (op) Quando o usuário clica em sair ou sessão é encerrada Sessão limpa, estado volta para Idle

Important

O login só pode funcionar com GitHub. Nenhuma outra forma será permitida.
O token deve ser salvo com segurança (pode ser localStorage/secureStorage conforme plataforma).


🔄 Fluxo de estados esperados:

stateDiagram-v2
    [*] --> Idle
    Idle --> Loading : Clicou em "Login com GitHub"
    Loading --> Authenticated : Retornou sucesso
    Loading --> Error : Retornou erro
    Authenticated --> LoggedOut : Clicou em sair
    LoggedOut --> Idle
Loading

📦 Entregas obrigatórias:

  • Botão funcional que inicia o processo de OAuth com GitHub
  • Controle interno da tela reagindo a cada estado (Idle, Loading, etc)
  • Armazenamento seguro do token
  • Estrutura clara de como esses estados se conectam com o app
  • Logout funcional limpando tudo e voltando ao estado Idle

🧪 Critérios de Aceite (QA):

Teste esperado Resultado desejado
Clicou no botão de login Tela muda para Loading
OAuth retorna sucesso Estado vira Authenticated, e token é salvo
OAuth retorna erro Estado vira Error, mensagem aparece
App é recarregado após login Sessão se mantém (usuário continua autenticado)
Clicou em logout Sessão apagada, estado volta para Idle
Tentou login sem internet Estado vira Error, com mensagem apropriada

📌 Lembretes:

Tip

Em caso de dúvida, voltar ao épico da Feature de Login.
Caso algo esteja mal definido, chamar o P.O. imediatamente.

Warning

Este card não trata de redirecionamento ou proteção de rotas — isso será feito no card seguinte.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    TASKPEQUENAS PARTES DA ISSUE PARA MAIOR QUEBRA NOS CARDS

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions