Pular para conteúdo

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.