User Stories¶
Versão: 1.0 Escopo: Documento único contendo todas as user stories do projeto.
US-001¶
- Título: Cadastrar novo Caderno na raiz
<Backward: UC-001 (fluxo principal)>Forward: TASK-001, TASK-002
Como usuário, quero criar um novo caderno, para estabelecer uma unidade raiz de organização para meus conteúdos.
- Critério de aceitação:
- O sistema deve permitir acessar a criação e salvar um caderno na raiz organizacional.
- O caderno criado deve ficar disponível para receber associações de itens.
US-002¶
- Título: Visualizar lista de cadernos criados
<Backward: UC-001 (fluxo principal)>Forward: TASK-003
Como usuário, quero visualizar os cadernos criados, para gerenciar minha estrutura organizacional.
- Critério de aceitação:
- O sistema deve listar todos os cadernos criados pelo usuário.
US-003¶
- Título: Capturar item rápido na Inbox
<Backward: UC-002 (fluxo principal)>Forward: TASK-004, TASK-005
Como usuário, quero registrar pensamentos ou tarefas rapidamente na Inbox, para capturar ideias sem precisar classificá-las de imediato.
- Critério de aceitação:
- O sistema deve permitir a inserção rápida na Inbox sem exigir classificação em um caderno.
- O item inserido deve ser gravado com o estado inicial de Inbox.
US-004¶
- Título: Visualizar itens na Inbox
<Backward: UC-002 (fluxo principal)>Forward: TASK-006
Como usuário, quero visualizar o conteúdo da Inbox, para revisar meus registros não classificados.
- Critério de aceitação:
- O sistema deve exibir claramente todos os itens que se encontram temporariamente na Inbox.
US-005¶
- Título: Mover item da Inbox para um Caderno
<Backward: UC-003 (fluxo principal)>Forward: TASK-007, TASK-008
Como usuário, quero associar um item da Inbox a um Caderno, para organizar meu conteúdo de forma estruturada.
- Critério de aceitação:
- O item deve deixar a Inbox automaticamente no momento em que é vinculado a um caderno.
- O estado do item deve mudar de Inbox para Ativo.
US-006¶
- Título: Validar unicidade de vínculo do item com caderno
<Backward: UC-003 (fluxo principal)>Forward: TASK-009
Como sistema, quero garantir que todo item pertença a exatamente um caderno, para manter a integridade da hierarquia estrutural.
- Critério de aceitação:
- O sistema deve impedir que um item pertença a múltiplos cadernos simultaneamente.
US-007¶
- Título: Criar item do tipo TODO
<Backward: UC-004 (fluxo principal)>Forward: TASK-010, TASK-011
Como usuário, quero criar um item do tipo TODO com horário e data limite opcionais, para registrar o que preciso fazer.
- Critério de aceitação:
- O sistema deve permitir preencher dados opcionais de horário e data limite.
- O item TODO gerado deve possuir por padrão o estado de conclusão (is_completed).
US-008¶
- Título: Criar item do tipo SCHEDULE
<Backward: UC-004 (fluxo alternativo 2a)>Forward: TASK-012, TASK-013
Como usuário, quero criar um item do tipo SCHEDULE informando obrigatoriamente a data/hora de início e término, para registrar compromissos com horário fixo.
- Critério de aceitação:
- O sistema deve validar a obrigatoriedade dos campos de data/hora de início e término.
US-009¶
- Título: Associar TODO a um SCHEDULE
<Backward: UC-004 (fluxo principal)>Forward: TASK-014
Como usuário, quero associar um item TODO a no máximo um item SCHEDULE, para vincular uma tarefa a um compromisso fixo.
- Critério de aceitação:
- O sistema deve permitir referenciar um SCHEDULE a partir de um TODO, sem permitir o inverso.
US-010¶
- Título: Adicionar sub-item a um TODO
<Backward: UC-005 (fluxo principal)>Forward: TASK-015, TASK-016
Como usuário, quero adicionar sub-itens a um TODO, para detalhar etapas de uma tarefa sob uma hierarquia simples 1:N.
- Critério de aceitação:
- O sub-item deve ficar vinculado exclusivamente ao item pai TODO.
- O sistema deve bloquear a criação de sub-itens em itens SCHEDULE.
US-011¶
- Título: Validar escopo restrito do sub-item
<Backward: UC-005 (fluxo principal)>Forward: TASK-017
Como sistema, quero garantir que o sub-item seja validado unicamente dentro do escopo do seu item pai, para evitar reaproveitamentos globais incorretos.
- Critério de aceitação:
- O sub-item concluído afeta apenas o escopo do seu TODO correspondente.
US-012¶
- Título: Duplicar item de forma seletiva
<Backward: UC-006 (fluxo principal)>Forward: TASK-018, TASK-019
Como usuário, quero duplicar um item para reaproveitar seu título, caderno e prioridade com agilidade.
- Critério de aceitação:
- A cópia deve manter o mesmo título (com prefixo opcional “Cópia de”), caderno e prioridade, nascendo no estado Ativo e sem datas definidas.
US-013¶
- Título: Omitir propriedades na duplicação de item
<Backward: UC-006 (fluxo principal)>Forward: TASK-020
Como sistema, quero garantir que o status de conclusão, sub-itens e vínculos com SCHEDULE não sejam copiados na duplicação, para manter a cópia limpa.
- Critério de aceitação:
- O item duplicado não deve herdar o status de conclusão, os sub-itens ou o vínculo SCHEDULE do original.
US-014¶
- Título: Deletar item sem sub-itens
<Backward: UC-007 (fluxo principal)>Forward: TASK-021, TASK-022
Como usuário, quero deletar um item do sistema para remover completamente suas referências.
- Critério de aceitação:
- O sistema deve remover totalmente as referências do item sem exigir confirmação caso o item não possua sub-itens.
US-015¶
- Título: Deletar item com sub-itens mediante confirmação
<Backward: UC-007 (fluxo alternativo 1a)>Forward: TASK-023, TASK-024
Como usuário, quero que o sistema exiba uma confirmação ao deletar um TODO com sub-itens, para evitar a perda acidental de dados encadeados.
- Critério de aceitação:
- O sistema deve solicitar confirmação do usuário e, se confirmado, deletar o TODO junto com todos os seus sub-itens.
US-016¶
- Título: Arquivar item concluído manualmente
<Backward: UC-008 (fluxo principal)>Forward: TASK-025, TASK-026
Como usuário, quero mover um item concluído para o estado Arquivado por meio de uma ação manual, para organizar meu histórico.
- Critério de aceitação:
- O arquivamento deve ser estritamente manual, não ocorrendo de forma automática.
- O item deve transitar do estado Concluído para Arquivado.
US-017¶
- Título: Configurar recorrência básica em item
<Backward: UC-009 (fluxo principal)>Forward: TASK-027, TASK-028
Como usuário, quero definir uma recorrência básica (diária, semanal ou mensal) com data de término opcional em um item, para automatizar repetições.
- Critério de aceitação:
- O sistema deve aplicar a regra de recorrência escolhida ao item SCHEDULE ou TODO.
US-018¶
- Título: Restringir exceções de recorrência
<Backward: UC-009 (fluxo principal)>Forward: TASK-029
Como sistema, quero impedir edições ou cancelamentos de instâncias individuais de recorrência, para respeitar a limitação de escopo da versão.
- Critério de aceitação:
- O sistema não deve oferecer suporte a exceções ou overrides em instâncias isoladas de séries recorrentes.
US-019¶
- Título: Adiar item ativo (Snooze rápido)
<Backward: UC-010 (fluxo principal)>Forward: TASK-030, TASK-031
Como usuário, quero adiar um item ativo usando opções rápidas (“Amanhã”, “Em 3 dias”, “Próxima semana”), para gerenciar melhor o timing de execução.
- Critério de aceitação:
- O sistema deve sobrepor o estado de adiamento temporário ao estado Ativo, ocultando o item até a data estipulada.
US-020¶
- Título: Adiar item ativo por data específica
<Backward: UC-010 (fluxo principal)>Forward: TASK-032
Como usuário, quero escolher uma data manual para adiar o reaparecimento de um item ativo, para ter flexibilidade no planejamento.
- Critério de aceitação:
- O sistema deve permitir a seleção de uma data específica pelo usuário para o reaparecimento do item.
US-021¶
- Título: Visualizar Calendário em modo Diário
<Backward: UC-011 (fluxo principal)>Forward: TASK-033, TASK-034
Como usuário, quero visualizar meu cronograma em uma timeline vertical de 24 horas, para planejar meu dia.
- Critério de aceitação:
- O sistema deve renderizar a visão diária exibindo SCHEDULEs e TODOs qualificados por horário ou data limite.
US-022¶
- Título: Visualizar Calendário nas visões Semanal, Mensal e Agenda
<Backward: UC-011 (fluxo principal)>Forward: TASK-035, TASK-036
Como usuário, quero alternar para as visões Semanal, Mensal ou Agenda, para ter diferentes perspectivas temporais dos meus compromissos.
- Critério de aceitação:
- O sistema deve prover as quatro visões de calendário de acordo com as regras de exibição de itens.
US-023¶
- Título: Aplicar regras de exibição de itens no calendário
<Backward: UC-011 (fluxo principal)>Forward: TASK-037
Como sistema, quero garantir que SCHEDULEs apareçam sempre no calendário e TODOs apareçam apenas se tiverem horário ou due date, para manter a consistência visual.
- Critério de aceitação:
- TODOs sem nenhuma data associada não devem ser exibidos no calendário.
US-024¶
- Título: Visualizar Planner Diário para TODOs
<Backward: UC-012 (fluxo principal)>Forward: TASK-038, TASK-039
Como usuário, quero acessar o Planner Diário para ver os TODOs de um dia específico ou aqueles sem data, para focar nas minhas execções diárias.
- Critério de aceitação:
- O Planner Diário deve exibir os TODOs do dia e os TODOs sem data associada.
US-025¶
- Título: Omitir SCHEDULEs do Planner Diário
<Backward: UC-012 (fluxo principal)>Forward: TASK-040
Como sistema, quero assegurar que itens SCHEDULE nunca apareçam no Planner Diário, para isolar a produtividade do calendário de compromissos.
- Critério de aceitação:
- SCHEDULEs devem ser mantidos estritamente fora do Planner Diário.
US-026¶
- Título: Buscar itens TODO por texto no título
<Backward: UC-013 (fluxo principal)>Forward: TASK-041, TASK-042
Como usuário, quero pesquisar termos no título para localizar rapidamente itens do tipo TODO.
- Critério de aceitação:
- O sistema deve realizar correspondência de texto restrita aos títulos de TODOs, omitindo Cadernos e SCHEDULEs.
US-027¶
- Título: Refinar resultados de busca com filtros
<Backward: UC-013 (fluxo alternativo 3a)>Forward: TASK-043, TASK-044
Como usuário, quero filtrar os resultados da busca por status, caderno, prioridade ou período, para encontrar tarefas específicas com precisão.
- Critério de aceitação:
- O sistema deve aplicar os filtros em tela para refinar a listagem de TODOs retornados na busca.
US-028¶
- Título: Ordenar listagem de tarefas por critérios estruturais
<Backward: UC-014 (fluxo alternativo 2a)>Forward: TASK-045, TASK-046
Como usuário, quero ordenar minhas tarefas por prioridade, data limite, criação, estimativa ou caderno, para organizar minha visualização.
- Critério de aceitação:
- O sistema deve reordenar imediatamente a listagem com base na preferência selecionada.
US-029¶
- Título: Aplicar ordenação padrão em listagens
<Backward: UC-014 (fluxo principal)>Forward: TASK-047
Como sistema, quero aplicar a combinação padrão de ordenação (prioridade > data limite > data de criação) quando nenhuma outra for acionada, para estruturar as listas de forma lógica.
- Critério de aceitação:
- A listagem deve respeitar a hierarquia padrão de ordenação na ausência de filtro explícito.
US-030¶
- Título: Autenticar via E-mail e Senha
<Backward: UC-015 (fluxo principal)>Forward: TASK-050, TASK-051
Como usuário, quero inserir meu e-mail e senha na tela de login, para acessar minha conta com segurança.
- Critério de aceitação:
- O sistema deve verificar o hash da senha no banco de dados e, em caso de sucesso, iniciar a sessão (Access e Refresh tokens).
US-031¶
- Título: Omitir existência de conta em falhas de login
<Backward: UC-015 (fluxo alternativo 2a)>Forward: TASK-052
Como sistema, quero exibir uma mensagem de erro genérica em caso de credenciais incorretas, para evitar ataques de enumeração de contas.
- Critério de aceitação:
- A mensagem de falha não deve indicar se o erro foi no e-mail ou na senha especificamente.
US-032¶
- Título: Bloquear conta temporariamente por força bruta
<Backward: UC-016 (fluxo principal)>Forward: TASK-053, TASK-054
Como sistema, quero bloquear temporariamente contas que atinjam 5 tentativas consecutivas de login falhas, para proteger contra ataques de força bruta.
- Critério de aceitação:
- Na quinta tentativa malsucedida, a conta deve ser imediatamente bloqueada, rejeitando novos logins pelo período estipulado.
US-033¶
- Título: Visualizar sessões ativas
<Backward: UC-017 (fluxo principal)>Forward: TASK-055, TASK-056
Como usuário, quero visualizar uma lista das minhas sessões ativas, para saber em quais dispositivos minha conta está conectada.
- Critério de aceitação:
- O sistema deve listar as sessões por dispositivo, garantindo o limite de uma sessão ativa por aparelho/navegador.
US-034¶
- Título: Revogar sessões remotamente
<Backward: UC-017 (fluxo principal)>Forward: TASK-057, TASK-058
Como usuário, quero encerrar uma sessão específica ou todas as outras sessões de uma vez, para garantir a segurança da minha conta remotamente.
- Critério de aceitação:
- Ao revogar, o sistema deve invalidar os tokens relacionados, forçando o logout nos respectivos dispositivos.
US-035¶
- Título: Reativar conta pelo login
<Backward: UC-018 (fluxo principal)>Forward: TASK-059, TASK-060
Como usuário com a conta desativada, quero ser questionado sobre a reativação após informar minhas credenciais, para recuperar meu acesso rapidamente sem fluxos complexos.
- Critério de aceitação:
- O sistema deve pausar o fluxo de login de uma conta desativada, exibir alerta para confirmação e, se aceito, mudar o status para Ativa e efetuar o login.
US-036¶
- Título: Cadastrar nova conta
<Backward: UC-019 (fluxo principal)>Forward: TASK-061, TASK-062
Como visitante, quero criar uma nova conta informando nome, e-mail e senha, para utilizar a plataforma imediatamente.
- Critério de aceitação:
- O sistema deve permitir a criação e atribuir o status de conta “Ativa” imediatamente, sem exigir confirmação de e-mail (double opt-in).
US-037¶
- Título: Validar regras de cadastro
<Backward: UC-019 (fluxo principal)>Forward: TASK-063
Como sistema, quero verificar a formatação, a unicidade do e-mail e impor regras mínimas de senha, para manter a integridade dos cadastros.
- Critério de aceitação:
- O sistema deve impedir cadastros com e-mails já existentes na base e senhas fora da política de segurança.
US-038¶
- Título: Atualizar informações pessoais de cadastro
<Backward: UC-020 (fluxo principal)>Forward: TASK-048, TASK-049
Como usuário, quero atualizar meus dados de cadastro no módulo de Configurações, para manter minhas informações pessoais corretas.
- Critério de aceitação:
- O sistema deve persistir as alterações de cadastro e refletir a nova identificação do usuário em toda a plataforma.
US-039¶
- Título: Alterar senha da conta
<Backward: UC-021 (fluxo principal)>Forward: TASK-064, TASK-065
Como usuário, quero alterar minha senha atual informando a antiga e a nova, para renovar a segurança do meu acesso.
- Critério de aceitação:
- O sistema deve validar a senha antiga, salvar o novo hash da senha e manter o usuário autenticado na sessão atual.
US-040¶
- Título: Invalidar sessões na troca de senha
<Backward: UC-021 (fluxo principal)>Forward: TASK-066
Como sistema, quero invalidar todas as outras sessões ativas do usuário após uma troca de senha bem-sucedida, para forçar a reautenticação nos demais dispositivos.
- Critério de aceitação:
- Qualquer dispositivo que não seja o utilizado para a troca da senha deverá ser automaticamente deslogado.
US-041¶
- Título: Desativar conta temporariamente
<Backward: UC-022 (fluxo principal)>Forward: TASK-067, TASK-068
Como usuário, quero desativar minha conta de forma reversível, para suspender meu uso sem perder meus dados (cadernos e tarefas).
- Critério de aceitação:
- A desativação deve alterar o status da conta, encerrar todas as sessões e manter os dados íntegros no banco de dados.
US-042¶
- Título: Excluir conta permanentemente
<Backward: UC-022 (fluxo alternativo 1a)>Forward: TASK-069, TASK-070
Como usuário, quero excluir permanentemente minha conta mediante confirmação explícita, para apagar todos os meus registros do sistema em definitivo.
- Critério de aceitação:
- A exclusão deve desencadear a exclusão em cascata de todos os Cadernos, TODOs, SCHEDULEs e configurações vinculados ao usuário, sem possibilidade de recuperação.
US-043¶
- Título: Excluir caderno movendo itens para a Inbox
<Backward: UC-023 (fluxo principal)>Forward: TASK-072, TASK-073
Como usuário, quero excluir um caderno que não uso mais, para simplificar minha organização sem perder as tarefas nele contidas.
- Critério de aceitação:
- Ao excluir, os itens do caderno devem aparecer na Inbox imediatamente.
- O caderno excluído não deve mais aparecer na listagem de cadernos.
US-044¶
- Título: Confirmar exclusão de caderno na interface
<Backward: UC-023 (fluxo principal)>Forward: TASK-073
Como usuário, quero uma confirmação visual antes de excluir um caderno, para evitar exclusões acidentais.
- Critério de aceitação:
- A interface deve exibir um alerta informando que os itens serão movidos para a Inbox antes da exclusão definitiva.
US-045¶
- Título: Editar propriedades de um item
<Backward: UC-024 (fluxo principal)>Forward: TASK-075, TASK-085
Como usuário, quero editar título, prioridade, data limite e recorrência de um item já criado, para corrigir ou atualizar informações sem precisar recriá-lo.
- Critério de aceitação:
- As alterações devem ser persistidas e refletidas em todas as visualizações do sistema.
US-046¶
- Título: Impedir edição de campos incompatíveis com o tipo do item
<Backward: UC-024 (fluxo alternativo 2a)>Forward: TASK-075
Como sistema, quero rejeitar tentativas de editar campos que não pertencem ao tipo do item, para manter a integridade do modelo de dados.
- Critério de aceitação:
- Uma tentativa de definir data limite em um SCHEDULE deve ser rejeitada com erro claro.
US-047¶
- Título: Marcar TODO como concluído
<Backward: UC-025 (fluxo principal)>Forward: TASK-076, TASK-086
Como usuário, quero marcar uma tarefa como concluída, para acompanhar meu progresso diário.
- Critério de aceitação:
- O item concluído permanece no estado Ativo até ser arquivado manualmente (ver UC-008).
US-048¶
- Título: Reverter conclusão de um TODO
<Backward: UC-025 (fluxo alternativo 1a)>Forward: TASK-076
Como usuário, quero desmarcar uma tarefa concluída por engano, para corrigir meu registro de progresso.
- Critério de aceitação:
- A reversão deve ser possível enquanto o item não tiver sido arquivado.
US-049¶
- Título: Remover sub-item individualmente
<Backward: UC-026 (fluxo principal)>Forward: TASK-078, TASK-088
Como usuário, quero remover um único sub-item de uma lista de etapas, para ajustar o checklist sem apagar toda a tarefa.
- Critério de aceitação:
- Apenas o sub-item selecionado deve ser removido; o TODO pai e os demais sub-itens permanecem intactos.
US-050¶
- Título: Visualizar detalhes completos de um item
<Backward: UC-027 (fluxo principal)>Forward: TASK-074, TASK-084
Como usuário, quero abrir os detalhes completos de um item a partir de qualquer listagem, para revisar todas as suas propriedades e sub-itens.
- Critério de aceitação:
- A tela/modal de detalhes deve exibir a lista de sub-itens quando o item for do tipo TODO.
US-051¶
- Título: Renovar sessão automaticamente sem novo login
<Backward: UC-028 (fluxo principal)>Forward: TASK-071, TASK-080
Como usuário, quero permanecer logado enquanto uso o sistema ativamente, para não precisar reinserir minhas credenciais a cada 15 minutos.
- Critério de aceitação:
- A navegação não deve ser interrompida por expiração do Access Token enquanto o Refresh Token for válido.
US-052¶
- Título: Revogar todas as sessões remotas de uma vez
<Backward: UC-017 (fluxo principal, ação em massa)>Forward: TASK-081, TASK-089
Como usuário, quero encerrar todas as demais sessões com um único clique, para reagir rapidamente caso suspeite de acesso indevido à minha conta.
- Critério de aceitação:
- A sessão corrente nunca deve ser revogada por esta ação.
- Todas as demais sessões devem ser invalidadas imediatamente.
US-053¶
- Título: Consultar meus dados de perfil atuais
<Backward: UC-020 (pré-requisito de exibição)>Forward: TASK-082, TASK-083
Como usuário, quero visualizar meus dados de cadastro atuais ao abrir Configurações, para saber o que será editado antes de submeter alterações.
- Critério de aceitação:
- Os dados exibidos devem refletir o estado mais recente persistido no sistema.
US-054¶
- Título: Concluir sub-item de uma tarefa
<Backward: UC-005 (extensão) / complementa US-011>Forward: TASK-077, TASK-087
Como usuário, quero marcar um sub-item específico como concluído, para acompanhar o progresso de uma tarefa em etapas.
- Critério de aceitação:
- A conclusão de um sub-item não deve alterar automaticamente o estado de conclusão do TODO pai.
US-055¶
- Título: Persistir reordenação manual de tarefas
<Backward: UC-014 (fluxo alternativo 2a) / complementa US-028>Forward: TASK-079, TASK-090
Como sistema, quero persistir a nova ordem definida manualmente pelo usuário, para que a organização por drag & drop sobreviva a um recarregamento de página.
- Critério de aceitação:
- Ao recarregar a listagem, a ordem manual definida anteriormente deve ser mantida.