Aplicação de gerenciamento de um carrinho de compras, simulando experiência de e-commerce, com as seguintes funcionalidades:
- Listagem de produtos (cafés) disponíveis para compra;
- Aumentar ou remover a quantidade de itens no carrinho;
- Exibir o total de itens no carrinho no Header;
- Deletar um ou mais produto do carrinho no carrinho;
- Exibir o valor total da soma de itens no carrinho multiplicados pelo valor;
- Formulário para o usuário preencher o seu endereço;
- Validar os campos e submeter o formulário;
- Caso o formulário seja inválido, exibir uma mensagem de erro;
- Nao deixar submeter o formulário caso o endereço esteja vazio;
- Nao deixar submeter o formulário caso o carrinho esteja vazio;
- Validar opcoes de pagamento;
- Adicionar pagina 404 not found;
Conceitos aplicados no projeto:
-
Componentização
-
Listas e chaves
-
Propriedades
-
Estados
-
Imutabilidade do estado
-
Lazy initialization
-
Efeitos colaterais (Side Effects)
-
Componentes controlados x não controlado
-
ContextAPI
-
useReducer
-
Componentização de actions e reducers
-
Gerenciamento de estado com immer
-
LocalStorage
# Clonar o repositório
$ git clone
# Entrar no diretório
$ cd <pasta-do-projeto>
# Instalar as dependências
$ yarn ou npm install
# Iniciar o projeto
$ yarn dev ou npm run dev