Pular para conteúdo

Casos de Uso

Versão: 1.0 Escopo: Documento único contendo todos os casos de uso do projeto.

UC-001

  • Título: Criar Caderno
  • < Backward: EPIC-001
  • > Forward: US-001, US-002
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário acessa o módulo de Cadernos.
    2. O usuário solicita a criação de um novo caderno.
    3. O sistema cria o caderno, estabelecendo-o como uma unidade raiz da organização.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • O caderno criado deve estar disponível para que itens sejam posteriormente associados a ele.

UC-002

  • Título: Capturar Item na Inbox
  • < Backward: EPIC-001
  • > Forward: US-003, US-004
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário acessa a área da Inbox.
    2. O usuário insere a descrição rápida de um item.
    3. O sistema salva o item na base de dados com o estado inicial de Inbox.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • O sistema não deve exigir classificação do item em um caderno no momento do registro rápido na Inbox.

UC-003

  • Título: Classificar Item em Caderno
  • < Backward: EPIC-001
  • > Forward: US-005, US-006
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário visualiza os itens presentes na Inbox.
    2. O usuário escolhe um item e o vincula a um Caderno existente.
    3. O sistema move o item automaticamente para o respectivo Caderno e altera seu estado de Inbox para Ativo.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • O item deve pertencer a exatamente um Caderno após a classificação e deixar a Inbox automaticamente.

UC-004

  • Título: Criar Item
  • < Backward: EPIC-002
  • > Forward: US-007, US-008, US-009
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário aciona a função de criação de item dentro de um Caderno.
    2. O usuário define se o item é do tipo TODO.
    3. O usuário preenche as propriedades (opcionais: horário, data limite e prioridade).
    4. O sistema cria o item do tipo TODO.
  • Fluxo(s) alternativo(s):
    • 2a. O usuário define que o item é do tipo SCHEDULE → O sistema exige e recebe as definições de data/hora de início e de término → O sistema cria o item do tipo SCHEDULE.
  • Critério de aceitação:
    • Itens TODO devem possuir estado de conclusão (is_completed) por padrão.
    • Itens SCHEDULE devem ter horários obrigatórios preenchidos.

UC-005

  • Título: Adicionar Sub-item a TODO
  • < Backward: EPIC-002
  • > Forward: US-010, US-011, US-054
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário seleciona um item existente do tipo TODO.
    2. O usuário insere a descrição de um novo sub-item.
    3. O sistema salva o sub-item e o vincula exclusivamente àquele TODO numa relação 1:N (pai-filho simples).
  • Fluxo(s) alternativo(s):
    • 1a. O usuário seleciona um item SCHEDULE → O sistema oculta ou bloqueia a opção de adicionar sub-itens.
  • Critério de aceitação:
    • Sub-itens devem ser validados exclusivamente dentro do escopo do item pai (TODO) e não devem ser reaproveitados em outro lugar.

UC-006

  • Título: Duplicar Item
  • < Backward: EPIC-002
  • > Forward: US-012, US-013
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário aciona a ação de duplicar um determinado item.
    2. O sistema gera uma cópia do item preservando seu título (com prefixo opcional “Cópia de”), caderno de origem e prioridade.
    3. O sistema cria o item com estado ATIVO e sem preenchimento de datas.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • A cópia não deve conter o status de conclusão do item original, não deve copiar os sub-itens originais e não deve copiar vínculo com qualquer SCHEDULE.

UC-007

  • Título: Deletar Item
  • < Backward: EPIC-002
  • > Forward: US-014, US-015
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário solicita a exclusão de um item (TODO ou SCHEDULE) no sistema.
    2. O sistema remove totalmente as referências daquele item.
  • Fluxo(s) alternativo(s):
    • 1a. O item selecionado é um TODO e possui sub-itens vinculados → O sistema exibe um alerta pedindo confirmação → O usuário confirma → O sistema deleta o TODO e todos os seus sub-itens juntos.
  • Critério de aceitação:
    • O item pode ser deletado a partir de qualquer fase do seu ciclo de vida. Sem sub-itens, a exclusão de item não necessita de confirmação.

UC-008

  • Título: Arquivar Item Concluído
  • < Backward: EPIC-002
  • > Forward: US-016
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário seleciona um item que está no estado Concluído.
    2. O usuário executa manualmente a ação de arquivamento.
    3. O sistema altera o estado do item para Arquivado.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • O sistema nunca deve arquivar itens de forma automática, apenas por ação estritamente manual.

UC-009

  • Título: Configurar Recorrência em Item
  • < Backward: EPIC-003
  • > Forward: US-017, US-018
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário visualiza as propriedades de um item (SCHEDULE ou TODO).
    2. O usuário define o comportamento de recorrência básica selecionando entre diária, semanal ou mensal, com ou sem data de término.
    3. O sistema aplica a repetição sobre a entidade raiz.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • O sistema não deve oferecer qualquer suporte a exceções, cancelamento ou sobrescrita (override) de instâncias individuais geradas.

UC-010

  • Título: Adiar Item (Snooze)
  • < Backward: EPIC-003
  • > Forward: US-019, US-020
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário aciona o adiamento sobre um item no estado Ativo.
    2. O usuário seleciona uma das opções rápidas (Amanhã, Em 3 dias, Próxima semana) ou define uma data específica manual.
    3. O sistema sobrepõe essa condição temporária ao estado Ativo, ocultando o item até a condição ser cumprida.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • O item retorna à visibilidade normal a partir da data de reaparecimento definida pelo usuário.

UC-011

  • Título: Visualizar Calendário
  • < Backward: EPIC-004
  • > Forward: US-021, US-022, US-023
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário acessa o módulo de Calendário.
    2. O usuário alterna entre as opções de visualização (Diária, Semanal, Mensal ou Agenda).
    3. O sistema exibe itens do tipo SCHEDULE e itens do tipo TODO que possuam horário definido ou data limite (due date).
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • Itens TODO sem qualquer data não podem ser visíveis nas renderizações de calendário.

UC-012

  • Título: Visualizar Planner Diário
  • < Backward: EPIC-004
  • > Forward: US-024, US-025
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário acessa a funcionalidade de Planner Diário.
    2. O sistema compila e exibe exclusivamente os itens do tipo TODO de um dia específico ou aqueles sem datas associadas.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • Itens do tipo SCHEDULE não podem aparecer sob nenhuma condição no Planner Diário.

UC-013

  • Título: Buscar Itens
  • < Backward: EPIC-004
  • > Forward: US-026, US-027
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário aciona o módulo de Busca e insere um texto de pesquisa.
    2. O sistema realiza a correspondência simples de texto nos títulos, iterando exclusivamente sobre os Itens do tipo TODO.
    3. O sistema apresenta os resultados encontrados na tela.
  • Fluxo(s) alternativo(s):
    • 3a. O usuário refina a lista de resultados utilizando os filtros simples em tela para Status, Caderno, Prioridade ou Período → O sistema restringe a listagem.
  • Critério de aceitação:
    • O sistema nunca deve retornar correspondências de Cadernos ou itens SCHEDULE na listagem de resultados.

UC-014

  • Título: Ordenar Listagem de Tarefas
  • < Backward: EPIC-004
  • > Forward: US-028, US-029, US-055
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário acessa a lista de tarefas no módulo Todo List.
    2. O usuário não seleciona nenhuma ordenação explícita.
    3. O sistema ordena os itens pela combinação de prioridade > data limite > data de criação.
  • Fluxo(s) alternativo(s):
    • 2a. O usuário seleciona um critério específico (Manual, Prioridade, Data limite, Criação, Estimativa ou Caderno) → O sistema reordena imediatamente a listagem com base na preferência.
  • Critério de aceitação:
    • O modo de ordenação Manual deve permitir a reordenação visual arrastando e soltando elementos (drag & drop).

UC-015

  • Título: Autenticar Usuário (Login)
  • < Backward: EPIC-005
  • > Forward: US-030, US-031
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário insere suas credenciais (e-mail e senha) na tela de login.
    2. O sistema verifica a integridade gerando o hash e comparando com a base de dados.
    3. O sistema valida as credenciais e fornece os tokens (Access e Refresh), estabelecendo a sessão.
  • Fluxo(s) alternativo(s):
    • 2a. As credenciais são inválidas → O sistema exibe mensagem de erro genérica sem revelar se o e-mail existe.
  • Critério de aceitação:
    • As mensagens de erro em caso de falha não devem permitir ataques de enumeração de conta.

UC-016

  • Título: Bloquear Conta por Tentativas Incorretas (Antiforça bruta)
  • < Backward: EPIC-005
  • > Forward: US-032
  • Ator(es): Sistema (primário)
  • Relacionamentos: Estende UC-015
  • Fluxo principal:
    1. O usuário tenta realizar login (UC-015) e falha repetidas vezes.
    2. O sistema contabiliza as tentativas falhas consecutivas.
    3. Ao atingir a 5ª tentativa malsucedida, o sistema bloqueia temporariamente a conta do usuário.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • O bloqueio de conta deve ocorrer de forma imediata na quinta falha, inviabilizando tentativas subsequentes durante o período de bloqueio.

UC-017

  • Título: Gerenciar Sessões de Usuário
  • < Backward: EPIC-005
  • > Forward: US-033, US-034, US-052
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário autenticado acessa a interface de dispositivos/sessões ativas.
    2. O sistema exibe uma lista das sessões atualmente conectadas (limitadas a uma por dispositivo).
    3. O usuário seleciona a opção de revogar uma sessão específica ou todas as outras sessões.
    4. O sistema invalida os tokens respectivos, forçando o logout nos referidos dispositivos.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • O sistema deve suportar múltiplas sessões em dispositivos diferentes, permitindo revogação individual e em massa.

UC-018

  • Título: Reativar Conta Desativada
  • < Backward: EPIC-005
  • > Forward: US-035
  • Ator(es): Usuário (primário)
  • Relacionamentos: Inclui UC-015
  • Fluxo principal:
    1. O usuário insere credenciais válidas na tela de login de uma conta com status “Desativada”.
    2. O sistema interrompe o fluxo normal de login e exibe uma tela perguntando se o usuário deseja reativar a conta.
    3. O usuário fornece a confirmação explícita.
    4. O sistema altera o status da conta para “Ativa” e completa o login gerando a sessão.
  • Fluxo(s) alternativo(s):
    • 3a. O usuário recusa a reativação → O sistema aborta o login e retorna para a tela inicial.
  • Critério de aceitação:
    • A reativação deve ser um processo transparente e integrado exclusivamente na tela de login, requerendo confirmação antes da criação da sessão.

UC-019

  • Título: Cadastrar Novo Usuário
  • < Backward: EPIC-006
  • > Forward: US-036, US-037
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário acessa a tela de Cadastro.
    2. O usuário preenche os campos requeridos (e-mail, senha, nome).
    3. O sistema verifica a formatação do e-mail, a unicidade e a política mínima de senha.
    4. O sistema cria a conta imediatamente com o status “Ativa”.
  • Fluxo(s) alternativo(s):
    • 3a. O e-mail já existe ou a senha não atinge os requisitos mínimos → O sistema informa o erro e solicita correção.
  • Critério de aceitação:
    • O sistema não deve exigir verificação de e-mail (double opt-in) nesta versão, permitindo acesso imediato pós-cadastro.

UC-020

  • Título: Atualizar Dados de Cadastro
  • < Backward: EPIC-006
  • > Forward: US-038, US-053
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário acessa o módulo de Configurações, na área dedicada de gerenciamento de conta.
    2. O usuário visualiza as informações atuais e executa atualizações nos seus dados pessoais.
    3. O sistema salva e persiste as modificações realizadas.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • As atualizações nos dados do usuário devem refletir instantaneamente a identificação do usuário em toda a plataforma.

UC-021

  • Título: Alterar Senha
  • < Backward: EPIC-006
  • > Forward: US-039, US-040
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário autenticado acessa a aba de segurança/senha nas configurações.
    2. O usuário insere a senha atual e a nova senha desejada.
    3. O sistema valida as senhas, persistindo a nova credencial.
    4. O sistema invalida automaticamente todas as outras sessões ativas (salvo a corrente).
  • Fluxo(s) alternativo(s):
    • 2a. A senha atual está incorreta → O sistema exibe um erro e bloqueia a alteração.
  • Critério de aceitação:
    • Após o sucesso da operação, o usuário não deve ser deslogado de sua sessão atual, mas todos os demais dispositivos devem exigir novo login.

UC-022

  • Título: Desativar ou Excluir Conta
  • < Backward: EPIC-006
  • > Forward: US-041, US-042
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário acessa as configurações avançadas da sua conta e solicita a Desativação.
    2. O sistema altera o status da conta para “Desativada”.
    3. O sistema encerra todas as sessões ativas do usuário e preserva seus dados (cadernos e itens) no banco.
  • Fluxo(s) alternativo(s):
    • 1a. O usuário solicita a Exclusão (deleção permanente) → O sistema exige confirmação crítica → O usuário confirma → O sistema apaga permanentemente a conta, deletando em cascata todos os Cadernos, TODOs e Schedules associados.
  • Critério de aceitação:
    • O sistema deve manter claras as fronteiras entre a Desativação (ação temporária reversível via login) e a Exclusão (ação destrutiva sem retorno).

UC-023

  • Título: Deletar Caderno
  • < Backward: EPIC-002
  • > Forward: US-043, US-044
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário acessa o módulo de Cadernos.
    2. O usuário solicita a exclusão de um caderno existente.
    3. O sistema retorna todos os itens pertencentes àquele caderno para o estado temporário de Inbox.
    4. O sistema remove o caderno.
  • Fluxo(s) alternativo(s): Não se aplica — diferentemente da deleção de item com sub-itens (UC-007), a deleção de caderno não exige confirmação adicional além do alerta padrão de UI.
  • Critério de aceitação:
    • Nenhum item deve ser perdido após a deleção do caderno; todos devem reaparecer na Inbox.
    • O caderno deletado não deve mais aparecer na listagem (GET /notebooks).

UC-024

  • Título: Editar Item
  • < Backward: EPIC-002
  • > Forward: US-045, US-046
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário seleciona um item existente (TODO ou SCHEDULE).
    2. O usuário altera uma ou mais propriedades editáveis (título, prioridade, data limite, horário, recorrência).
    3. O sistema valida e persiste as alterações.
  • Fluxo(s) alternativo(s):
    • 2a. O usuário tenta alterar um campo que não pertence ao tipo do item (ex.: data limite em um SCHEDULE) → o sistema rejeita a alteração com erro específico.
  • Critério de aceitação:
    • As alterações devem refletir imediatamente em todas as visualizações (Todo List, Calendário, Planner, Busca).
    • O tipo do item (TODO/SCHEDULE) não pode ser alterado após a criação.

UC-025

  • Título: Concluir Item (TODO)
  • < Backward: EPIC-002
  • > Forward: US-047, US-048
  • Ator(es): Usuário (primário)
  • Relacionamentos: Estende UC-008 (Arquivar Item Concluído)
  • Fluxo principal:
    1. O usuário marca um TODO ativo como concluído.
    2. O sistema altera is_completed para verdadeiro, mantendo o item no estado Ativo.
  • Fluxo(s) alternativo(s):
    • 1a. O usuário desmarca um TODO já concluído → o sistema reverte is_completed para falso.
  • Critério de aceitação:
    • A conclusão de um TODO não move o item para o estado Arquivado automaticamente — essa é uma ação manual distinta (ver UC-008).
    • Itens do tipo SCHEDULE não podem ser marcados como concluídos.

UC-026

  • Título: Remover Sub-item Isoladamente
  • < Backward: EPIC-002
  • > Forward: US-049
  • Ator(es): Usuário (primário)
  • Relacionamentos: Estende UC-005 (Adicionar Sub-item a TODO)
  • Fluxo principal:
    1. O usuário seleciona um sub-item vinculado a um TODO.
    2. O usuário aciona a remoção apenas daquele sub-item.
    3. O sistema remove o sub-item, preservando o TODO pai e os demais sub-itens.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • A remoção de um sub-item não deve afetar o item pai nem os demais sub-itens vinculados.

UC-027

  • Título: Visualizar Detalhes de Item
  • < Backward: EPIC-002
  • > Forward: US-050
  • Ator(es): Usuário (primário)
  • Relacionamentos: Nenhum
  • Fluxo principal:
    1. O usuário seleciona um item em qualquer listagem (Todo List, Calendário, Planner, Busca).
    2. O sistema exibe as propriedades completas do item, incluindo sub-itens quando o item for do tipo TODO.
  • Fluxo(s) alternativo(s): Não se aplica.
  • Critério de aceitação:
    • A visualização deve refletir o estado mais atual do item persistido no momento da consulta.

UC-028

  • Título: Renovar Sessão Silenciosamente (Refresh Token)
  • < Backward: EPIC-005
  • > Forward: US-051
  • Ator(es): Sistema (primário) / Usuário (indireto)
  • Relacionamentos: Estende UC-015 (Autenticar Usuário)
  • Fluxo principal:
    1. O Access Token do usuário expira durante o uso normal do sistema.
    2. O frontend detecta a expiração (resposta 401 em uma chamada protegida) e aciona a renovação usando o Refresh Token.
    3. O sistema valida o Refresh Token e emite um novo Access Token, sem exigir novo login.
  • Fluxo(s) alternativo(s):
    • 2a. O Refresh Token também está expirado ou revogado → o sistema retorna falha e o usuário é redirecionado à tela de login.
  • Critério de aceitação:
    • A renovação deve ser transparente ao usuário, sem interromper a navegação, enquanto o Refresh Token for válido.