METEORA é um challenge de uma loja online de roupas contemporâneas, casuais e sem gênero.
O projeto tem como foco o desenvolvimento web utilizando React + TypeScript, aplicando boas práticas de arquitetura, gerenciamento de estado e estilização.
🌐 Deploy: https://meteora-zeta-ten.vercel.app/
- 🛒 Catálogo de produtos – listagem completa e organizada.
- 🔎 Busca – por categorias e por produto.
- 🏬 Nossas Lojas – informações sobre unidades físicas.
- ✨ Novidades & Promoções – destaques e descontos.
- 👤 Área do usuário – Cadastro, Login e Perfil.
- ❤️ Favoritos – lista personalizada.
- 📦 Carrinho de Compras – adicionar, remover e visualizar itens.
- 📜 Meus Pedidos – histórico de compras.
- 📍 Checkout – endereço de entrega e formas de pagamento.
- 💳 Pagamentos – Pix | Boleto | Cartão.
- 📑 Resumo final – conferência antes da compra.
Como o projeto tem caráter didático, não existe um back-end real.
Para simular essa camada de persistência, foram utilizados:
- Endereço do usuário
- Carrinho de compras
- Dados do usuário
- Meus pedidos
- Favoritos
accessTokenrefreshTokenaccessTokenExpiresIn- Dados do usuário logado
localStorage.setItem("userAddress", JSON.stringify(address));
const address = JSON.parse(localStorage.getItem("userAddress") || "null");
localStorage.setItem("cart", JSON.stringify(cartItems));
const cartItems = JSON.parse(localStorage.getItem("cart") || "[]");
localStorage.setItem("favorites", JSON.stringify(favorites));
const favorites = JSON.parse(localStorage.getItem("favorites") || "[]");sessionStorage.setItem("accessToken", accessToken);
sessionStorage.setItem("refreshToken", refreshToken);
sessionStorage.setItem("accessTokenExpiresIn", expiresIn.toString());
const accessToken = sessionStorage.getItem("accessToken");
const refreshToken = sessionStorage.getItem("refreshToken");
const expiresIn = sessionStorage.getItem("accessTokenExpiresIn");
sessionStorage.setItem("loggedUser", JSON.stringify(user));
const loggedUser = JSON.parse(sessionStorage.getItem("loggedUser") || "null");- ⚛️ React 19 (RC)
- 🟦 TypeScript
- 🎨 styled-components
- 🛠️ Redux Toolkit + Redux-Saga
- 🌐 Axios
- 🔄 React Router DOM
- 📦 React Hook Form
- 🎯 React Icons
- 🎞️ Swiper
- ✅ React Toastify
- 🧾 React QR Code + React Barcode
- 🛡️ Vite
📦 meteora
┣ 📂 src
┃ ┣ 📂 assets
┃ ┣ 📂 components
┃ ┣ 📂 pages
┃ ┣ 📂 store
┃ ┣ 📂 services
┃ ┣ 📂 utils
┃ ┣ 📂 styles
┃ ┗ 📜 main.tsx
┣ 📜 package.json
┣ 📜 tsconfig.json
┣ 📜 vite.config.ts
┗ 📜 README.mdgit clone https://github.com/leonardoOluz/meteora.git
cd meteora
npm install
npm run dev👉 Acesse: http://localhost:5173
👉 Acesse: Readme-vite
🔗 https://meteora-zeta-ten.vercel.app/
Leonardo O. Luz
- Github: @leonardoOluz
Este projeto é de uso didático e está licenciado sob a licença MIT.
👉 Acesse: README-EN

.png)
.png)
