Skip to content

luizhanauer/checkit

Repository files navigation

🛒 Checkit - Assistente de Compras Inteligente

O Checkit é um aplicativo web focado na execução de compras de supermercado. Diferente de aplicativos de notas tradicionais, ele foi desenhado para ser usado com apenas uma mão enquanto você empurra o carrinho, oferecendo uma transição fluida entre o planejamento em casa e a execução no mercado.

✨ Diferenciais e Funcionalidades

  • 🔄 Dois Modos de Uso:
    • Modo Edição: Planeje sua lista com calma, adicione itens manualmente ou use o catálogo de sugestões rápidas.
    • Modo Lista (Shopping Mode): Interface limpa, com botões maiores e sem distrações. Ao marcar um item como "no carrinho", ele desce automaticamente para o final da lista.
  • ⚡ Catálogo Inteligente com Auto-Incremento: Adicione itens comuns (como Frutas, Limpeza, Frios) com apenas um toque. O sistema entende a unidade métrica e incrementa de forma inteligente (ex: +1 UND, +0.5 KG, +100 G).
  • 📱 Design "Thumb-Friendly": Interface totalmente otimizada para uso no celular, com paleta de cores "Dark Slate" de alto contraste para reduzir a fadiga visual dentro do supermercado.
  • 🔗 Compartilhamento Stateless & Offline:
    • Salva automaticamente no localStorage do dispositivo.
    • Compartilhe a lista completa instantaneamente através de um Link (Base64) gerado na própria URL.
    • Exporte o resumo organizado para o WhatsApp.

🏗️ Arquitetura e Tech Stack

Este projeto foi construído seguindo rigorosamente os princípios de Clean Code, Clean Architecture e Object Calisthenics. A lógica de negócios é 100% isolada da camada de interface (Vue).

  • Frontend: Vue 3 (Composition API) + Vite
  • Estilização: Tailwind CSS (com utilitários modernos e design system customizado)
  • Linguagem: TypeScript (Tipagem estrita para garantir a integridade do catálogo e da lista)
  • Testes: Vitest (Testes unitários focados na camada de Domínio)
  • Domain-Driven Design (DDD): Lógica de ordenação, incremento métrico e geração de relatórios isolados em src/domain/Checklist.ts e src/domain/ShoppingCatalog.ts.

🚀 Como rodar o projeto

Pré-requisitos

  • Node.js (v18+)
  • npm ou pnpm

Instalação e Execução

# Instalar dependências
npm install

# Rodar em modo de desenvolvimento
npm run dev

# Executar testes unitários do domínio
npm run test

# Build otimizado para produção
npm run build

🧪 Qualidade de Código e Testes

A inteligência central do aplicativo (ordenação dinâmica por status e data de criação, formatação de saída) está coberta por testes automatizados para evitar regressões. Para rodar a suíte de testes do Vitest:

npm run test

Contribuição

Contribuições são bem-vindas! Se você encontrar algum problema ou tiver sugestões para melhorar a aplicação, sinta-se à vontade para abrir uma issue ou enviar um pull request.

Se você gostou do meu trabalho e quer me agradecer, você pode me pagar um café :)

Buy Me A Coffee

Licença

Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter mais informações.

About

🛒 Assistente de compras focado em agilidade no supermercado. Possui "Modo Compra" anti-distração, catálogo inteligente de auto-incremento e compartilhamento via URL/WhatsApp. Feito com Vue 3, TypeScript e Clean Arch.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors