# Backlog

# Histórias de Usuário

US 01 - Cadastro de ADMIN

Eu como admin desejo que minha conta seja criada automaticamente pela plataforma para que eu possa começar a cadastrar usuários.

- \[\] O cadastro deverá ser feito usando variáveis setadas no .env
- \[\] O sistema deverá cadastrar apenas 1 ADMIN que irá alimentar o sistema

US 02 - Login de ADMIN

Eu como ADMIN desejo acessar minha conta para que eu possa gerenciar todo o sistema

Critérios de aceitação:

- \[\] O login deverá ser feito por login e senha;
- \[\] As credenciais são as mesmas cadastradas automaticamente pelo sistema
- \[\] A segurança é feita por Token JWT
- \[\] Todas as informações necessárias deverão vir do backend, nada deverá ser acessado ou guardado no localstorage

US 03 - Painel de ADMIN

Eu como ADMIN desejo acessar meu painel para que eu possa cadastrar usuários.

Critérios de aceitação:

- \[\] Deve ser possível criar todos os tipos de usuário (PONTISTA, SUPERVISOR, ADMIN)
- \[\] As validações de identidade devem ser feitas A CADA OPERAÇÃO
- \[\] As rotas deverão ser protegidas, SOMENTE O ADMIN deverá ter acesso a ela

  
US 03 - Autenticação - Fluxo normal

Eu como usuário (PONTISTA, SUPERVISOR, ADMIN) desejo acessar a plataforma para poder gerencias meus pontos ou meus estagiários.

Critérios de aceitação:

- \[\] O login deverá ser feito por email e senha
- \[\] A senha deverá ser criptografada
- \[\] Deverá ser possível logar como SUPERVISOR, PONTISTA e ADMIN apartir da mesma tela
- \[\] Deverá ser possĩvel acessar a RECUPERAÇÃO DE SENHA apartir da tela de Autenticação
- \[\] A segurança é feita por meio de Tokens JWT, todas as informações são geridas na API, nada ficará local no navegador

US 04 - Bater Ponto

Eu como pontista desejo bater ponto para que eu possa ter controle de minhas presenças, ferias e faltas.

Critérios de aceitação:

- \[\] Apenas pontistas com sessões ativas batem ponto
- \[\] Horário, direção (entrada, saída) são fornecidos e processados no backend
- \[\] Deverá ser possível bater 1 único ponto de saída e 1 único ponto de entrada
- \[\] Caso não seja batido o ponto no dia, o usuário terá FALTA
- \[\] Caso tenha apenas ponto de ENTRADA será marcada uma FALTA\*

US 05 -