Neste desafio, desenvolvi uma aplicação de loja virtual de cafés utilizando os fundamentos do React, juntamente com TypeScript. A aplicação foi estruturada com boas práticas de programação, clean code e utilização de bibliotecas para facilitar o desenvolvimento.
Ao desenvolver a aplicação, apliquei os seguintes fundamentos do React com TypeScript:
- Estados: Utilizei os estados do React para controlar e atualizar as informações dinamicamente.
- ContextAPI: Utilizei o Context API do React para compartilhar informações entre componentes sem a necessidade de passar props manualmente.
- LocalStorage: Utilizei o LocalStorage para armazenar informações no navegador do usuário, permitindo que o carrinho de compras seja persistente entre sessões.
- Imutabilidade do Estado: Mantive a imutabilidade do estado ao atualizar os dados, garantindo um melhor desempenho e prevenindo problemas de mutação indesejada.
- Listas e Chaves no ReactJS: Utilizei listas e chaves do React para renderizar de forma eficiente os itens do carrinho de compras e da lista de produtos.
- Propriedades: Utilizei propriedades para passar informações entre componentes, permitindo a reutilização e modularidade.
- Componentização: Dividi a aplicação em componentes reutilizáveis e de responsabilidades específicas, promovendo a organização e manutenção do código.
- Além disso, implementei responsividade na aplicação para que ela se adapte a diferentes tamanhos de tela, proporcionando uma experiência agradável em dispositivos móveis e desktops.
Para facilitar o desenvolvimento da aplicação, utilizei as seguintes bibliotecas:
- Styled Components: Biblioteca para estilização de componentes no React.
- React Hook Form: Biblioteca para lidar com formulários de maneira simples e eficiente.
- Zod: Biblioteca para validação de esquemas de dados em tempo de execução.
- React Grid System: Sistema de grid responsivo para React.
- React Router: Biblioteca de roteamento para React.
- Lodash: Biblioteca de utilitários JavaScript.
Para instalar a aplicação, siga as etapas abaixo:
-
Clone o projeto utilizando o comando:
git clone https://github.com/venturions/rocketseat-desafio-coffe-delivery.git
-
Acesse o diretório raiz do projeto no terminal.
-
Execute o comando
npm install
para instalar as dependências necessárias.
Para executar a aplicação:
-
No terminal, dentro do diretório raiz do projeto, digite o comando
npm run dev
. -
Acesse
http://localhost:3000/
em seu navegador.
Certifique-se de ter o Node.js e o npm instalados em seu sistema antes de prosseguir com a instalação e execução da aplicação.