Skip to content

About

PWA todo app feito com Angular Material 19 e Dexie.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Listo

Listo é um gerenciador de tarefas local-first para organizar atividades por data e etiquetas. O projeto nasceu como um exercício de Angular e hoje funciona como um estudo técnico sobre estado reativo, persistência no navegador, acessibilidade e renderização no servidor.

Funcionalidades

  • criação, edição, conclusão e exclusão de tarefas;
  • descrição, prazo com horário e etiquetas reutilizáveis;
  • busca por título, descrição ou etiqueta;
  • filtro de tarefas por data;
  • separação entre tarefas pendentes e concluídas;
  • persistência local no IndexedDB, sem envio dos dados para um servidor;
  • interface responsiva e navegação compatível com teclado.

Tecnologias

  • Angular 22 com componentes standalone e detecção de mudanças OnPush;
  • Angular Material e CDK para interface e recursos de acessibilidade;
  • RxJS para combinar tarefas, busca e data selecionada sem duplicar estado;
  • Dexie como camada de acesso ao IndexedDB;
  • Angular SSR e prerenderização;
  • Vitest para testes unitários e de regressão;
  • Netlify Angular Runtime para publicação.

Arquitetura

O código está dividido por responsabilidade:

src/app/
├── core/       # modelos, banco local e serviços de dados
├── features/   # tarefas, busca e seus diálogos
└── shared/     # componentes compartilhados, como o cabeçalho

O TaskService expõe a coleção persistida pelo Dexie. A lista combina essa fonte com os fluxos do termo de busca e da data selecionada. Cada alteração recalcula a visualização a partir da coleção original, evitando filtros cumulativos e mantendo uma única fonte de verdade.

Executar localmente

Pré-requisitos:

  • Node.js 24;
  • npm 11 ou superior.
npm install
npm start

A aplicação fica disponível em http://localhost:4200.

Qualidade e build

# suíte completa em modo CI
npm run test:ci

# build otimizado, SSR e prerenderização
npm run build

# executar o resultado SSR localmente
npm run serve:ssr:listo

A suíte cobre os serviços de tarefas e etiquetas, o estado de busca e data e regressões da combinação de filtros. O build gera a aplicação cliente, o servidor SSR e a rota inicial prerenderizada.

Decisões e limites

  • Os dados ficam somente no navegador. Isso favorece privacidade e uso sem backend, mas ainda não oferece sincronização entre dispositivos.
  • A interface está em português e usa o fuso e a localidade do dispositivo.
  • Autenticação, colaboração e notificações não fazem parte do escopo atual.
  • Testes end-to-end e sincronização opcional são evoluções possíveis, não requisitos para a proposta local-first.

Aprendizados demonstrados

O projeto documenta uma evolução de um exercício inicial para uma base mais sustentável: correção do fluxo reativo de filtros, serviços testáveis, migração incremental entre versões principais do Angular, SSR compatível com a plataforma de deploy e melhorias de responsividade e acessibilidade.

About

PWA todo app feito com Angular Material 19 e Dexie.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages