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:
- O usuário acessa o módulo de Cadernos.
- O usuário solicita a criação de um novo caderno.
- 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:
- O usuário acessa a área da Inbox.
- O usuário insere a descrição rápida de um item.
- 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:
- O usuário visualiza os itens presentes na Inbox.
- O usuário escolhe um item e o vincula a um Caderno existente.
- 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:
- O usuário aciona a função de criação de item dentro de um Caderno.
- O usuário define se o item é do tipo TODO.
- O usuário preenche as propriedades (opcionais: horário, data limite e prioridade).
- 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:
- O usuário seleciona um item existente do tipo TODO.
- O usuário insere a descrição de um novo sub-item.
- 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:
- O usuário aciona a ação de duplicar um determinado item.
- O sistema gera uma cópia do item preservando seu título (com prefixo opcional “Cópia de”), caderno de origem e prioridade.
- 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:
- O usuário solicita a exclusão de um item (TODO ou SCHEDULE) no sistema.
- 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:
- O usuário seleciona um item que está no estado Concluído.
- O usuário executa manualmente a ação de arquivamento.
- 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:
- O usuário visualiza as propriedades de um item (SCHEDULE ou TODO).
- 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.
- 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:
- O usuário aciona o adiamento sobre um item no estado Ativo.
- O usuário seleciona uma das opções rápidas (Amanhã, Em 3 dias, Próxima semana) ou define uma data específica manual.
- 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:
- O usuário acessa o módulo de Calendário.
- O usuário alterna entre as opções de visualização (Diária, Semanal, Mensal ou Agenda).
- 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:
- O usuário acessa a funcionalidade de Planner Diário.
- 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:
- O usuário aciona o módulo de Busca e insere um texto de pesquisa.
- O sistema realiza a correspondência simples de texto nos títulos, iterando exclusivamente sobre os Itens do tipo TODO.
- 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:
- O usuário acessa a lista de tarefas no módulo Todo List.
- O usuário não seleciona nenhuma ordenação explícita.
- 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:
- O usuário insere suas credenciais (e-mail e senha) na tela de login.
- O sistema verifica a integridade gerando o hash e comparando com a base de dados.
- 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:
- O usuário tenta realizar login (UC-015) e falha repetidas vezes.
- O sistema contabiliza as tentativas falhas consecutivas.
- 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:
- O usuário autenticado acessa a interface de dispositivos/sessões ativas.
- O sistema exibe uma lista das sessões atualmente conectadas (limitadas a uma por dispositivo).
- O usuário seleciona a opção de revogar uma sessão específica ou todas as outras sessões.
- 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:
- O usuário insere credenciais válidas na tela de login de uma conta com status “Desativada”.
- O sistema interrompe o fluxo normal de login e exibe uma tela perguntando se o usuário deseja reativar a conta.
- O usuário fornece a confirmação explícita.
- 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:
- O usuário acessa a tela de Cadastro.
- O usuário preenche os campos requeridos (e-mail, senha, nome).
- O sistema verifica a formatação do e-mail, a unicidade e a política mínima de senha.
- 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:
- O usuário acessa o módulo de Configurações, na área dedicada de gerenciamento de conta.
- O usuário visualiza as informações atuais e executa atualizações nos seus dados pessoais.
- 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:
- O usuário autenticado acessa a aba de segurança/senha nas configurações.
- O usuário insere a senha atual e a nova senha desejada.
- O sistema valida as senhas, persistindo a nova credencial.
- 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:
- O usuário acessa as configurações avançadas da sua conta e solicita a Desativação.
- O sistema altera o status da conta para “Desativada”.
- 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:
- O usuário acessa o módulo de Cadernos.
- O usuário solicita a exclusão de um caderno existente.
- O sistema retorna todos os itens pertencentes àquele caderno para o estado temporário de Inbox.
- 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:
- O usuário seleciona um item existente (TODO ou SCHEDULE).
- O usuário altera uma ou mais propriedades editáveis (título, prioridade, data limite, horário, recorrência).
- 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:
- O usuário marca um TODO ativo como concluído.
- O sistema altera
is_completedpara 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_completedpara falso.
- 1a. O usuário desmarca um TODO já concluído → o sistema reverte
- 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:
- O usuário seleciona um sub-item vinculado a um TODO.
- O usuário aciona a remoção apenas daquele sub-item.
- 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:
- O usuário seleciona um item em qualquer listagem (Todo List, Calendário, Planner, Busca).
- 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:
- O Access Token do usuário expira durante o uso normal do sistema.
- O frontend detecta a expiração (resposta 401 em uma chamada protegida) e aciona a renovação usando o Refresh Token.
- 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.