Skip to content

luizhanauer/pwa-builder

Repository files navigation

🛠️ PWA Builder

Uma ferramenta de engenharia de software robusta para geração automatizada de manifestos PWA, Service Workers resilientes e processamento de assets (ícones e screenshots) diretamente no navegador.

Este projeto foi construído seguindo princípios de Clean Architecture, DDD (Domain-Driven Design) e Object Calisthenics, garantindo um código altamente testável e de fácil manutenção.

🚀 Funcionalidades

  • Geração de Manifest: Criação completa do manifest.json seguindo os padrões W3C.
  • Service Worker Inteligente: Estratégia de cache offline com proteção contra consumo de streams e suporte a esquemas não-HTTP.
  • Processamento de Imagem: Algoritmo de Crop-to-Fill nativo (Canvas API) para evitar distorções em ícones e screenshots.
  • SEO Otimizado: Geração de index.html semântico com tags <main> e metadados de acessibilidade.
  • Exportação ZIP: Empacotamento instantâneo de todos os assets e arquivos de configuração.

🏗️ Arquitetura e Boas Práticas

O projeto foi estruturado para separar as preocupações de UI da lógica de negócio:

  • /src/core/services: Camada de domínio contendo os geradores e processadores (Pure TS).
  • /src/composables: Gestão de estado reativo e lógica de aplicação.
  • /src/components: Componentes de interface modulares e reutilizáveis.
  • Modo Estrito (TypeScript): 100% de cobertura de tipos, garantindo segurança em tempo de compilação.

🧪 Qualidade de Software (Testes)

O projeto possui uma suite de testes abrangente utilizando Vitest e JSDOM, cobrindo desde cálculos matemáticos de imagem até a reatividade da interface.

Camadas de Teste:

  1. Unitários: Validação dos serviços de geração (HTML, SW, ZIP).
  2. Mocking de DOM: Simulação de APIs de navegador (Canvas, Blobs, Anchors) para testes de ambiente Node.
  3. Integração: Validação da reatividade entre useManifest e componentes Vue.

Para rodar os testes:

npm run test

🛠️ Tecnologias Utilizadas

📦 Instalação e Execução

  1. Clone o repositório:
git clone https://github.com/luizhanauer/pwa-builder.git

cd pwa-builder
  1. Instale as dependências:
npm install
  1. Inicie o servidor de desenvolvimento:
npm run dev
  1. Gere a versão de produção:
npm run build

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

🛠️ Gerador Profissional de Assets e Manifestos PWA. Construído com Clean Architecture e TypeScript Estrito. Inclui processamento de imagens via Canvas, geração automatizada de Service Workers e suite completa de testes com Vitest.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages