REPOSITORY OVERVIEWLive repository statistics
★ 0Stars
⑂ 0Forks
◯ 0Open issues
◉ 0Watchers
47/100
OPENREPOHUB HEALTH SIGNALMixed signals
A transparent discovery signal based on current public GitHub metadata.
Recent activity35% weight
52 Community adoption25% weight
0 Maintenance state20% weight
100 License clarity10% weight
0 Project information10% weight
84 This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
README preview
🛒 Carrinho de Compras 2.0
Status: Projeto refatorado para aplicação de práticas mais robustas em JavaScript.
🔗 Acessar a demo do projeto ▶️
ℹ️ Sobre
Originalmente desenvolvido como parte dos cursos de lógica de programação da Alura, este projeto ficou parado no GitHub por uns meses — e quando voltei pra olhar, achei o código uma bagunça. Decidi refatorar do zero aplicando conceitos que fui aprendendo ao longo da refatoração de códigos anteriores.
Objetivo
Simular o comportamento interativo de um carrinho de compras em um site de e-commerce.
🔧 Upgrades e Refatoração
-
Separação de responsabilidades: o código original era uma função gigante fazendo tudo ao mesmo tempo. Quebrei em funções menores, cada uma com um papel específico: gerar produto, validar, exibir, atualizar total.
-
Catálogo de produtos como fonte de dados: os produtos saíram do HTML e foram para um array de objetos no JS. Os options do select são populados dinamicamente a partir desse catálogo, tornando muito mais fácil adicionar ou remover produtos.
-
Centralização de estado: criei um objeto estadoCarrinho como fonte da verdade da aplicação. O total e a lista de produtos ficam ali, não mais espalhados em variáveis soltas pelo código.
-
Persistência com localStorage: o carrinho agora salva automaticamente no localStorage do navegador. Se o usuário fechar e reabrir a página, os produtos continuam lá.
-
Renderização dinâmica: em vez de ir acumulando HTML com +=, o carrinho é limpo e rerenderizado do zero a cada mudança — baseado sempre no estado atual.
-
Controle de quantidade no carrinho: o usuário pode aumentar, diminuir ou digitar a quantidade de cada item diretamente no carrinho, sem precisar readicionar o produto. Implementado com delegação de eventos e datasets.
-
Merge de itens duplicados: adicionar um produto que já está no carrinho incrementa a quantidade em vez de criar uma linha duplicada.
Tecnologias
👤 Autor
ALGORITHMICALLY RELATEDSimilar Open-Source Projects
Selected from shared topics, language and repository description—not editorial ratings.
Simulador de piano interativo desenvolvido utilizando HTML, CSS e JavaScript. O objetivo é proporcionar uma experiência de tocar piano diretamente no navegador, permitindo que os usuários interajam com as teclas virtuais e produzam sons musicais.
33/100 healthActive repositoryHas homepage
HTMLNo license#css3#dom-manipulation#html5#javascript
⑂ 0 forks◯ 0 issuesUpdated Nov 5, 2024
Project homepage ↗