An open API service indexing awesome lists of open source software.

https://github.com/joschonarth/coffee-delivery

☕ A coffee delivery web app to browse, select, and order coffees, built with React, TypeScript, and Vite.
https://github.com/joschonarth/coffee-delivery

eslint immer phosphor-icons phosphor-react react react-hook-form react-router react-router-dom reactjs styled-components typescript vite zod

Last synced: about 1 month ago
JSON representation

☕ A coffee delivery web app to browse, select, and order coffees, built with React, TypeScript, and Vite.

Awesome Lists containing this project

README

          


Coffee Delivery

Aplicação de delivery de cafés desenvolvida com React, TypeScript e Vite.



last-commit
top-language
languages-count

![Coffee Delivery - Home](https://github.com/user-attachments/assets/f6d05725-2601-4a8a-a646-59842802ee0f)

## 📖 Visão Geral

**Coffee Delivery** é uma aplicação web para compra e entrega de cafés artesanais. O usuário pode selecionar produtos, configurar o carrinho, preencher o endereço de entrega e finalizar a compra de forma prática e rápida.

## 🛠️ Tecnologias Utilizadas

- ⚛️ **React** – Biblioteca para construção da interface.
- 🟦 **TypeScript** – Tipagem estática para maior segurança.
- ⚡ **Vite** – Ferramenta de build e dev server ultra rápida.
- 📋 **React Hook Form** – Manipulação eficiente de formulários.
- 🌐 **React Router DOM** – Controle de rotas da aplicação.
- 💅 **Styled-Components** – Estilização com CSS-in-JS.
- 🎨 **Phosphor Icons** – Conjunto de ícones com design consistente.
- 💎 **Zod** – Validação de dados com schema.
- 🧊 **Immer** – Manipulação de estados imutáveis de forma simples.
- 🧹 **ESLint** – Linter para padronização e qualidade de código.

## ⚙️ Funcionalidades

- ☕ **Listagem de cafés**: Exibe os produtos disponíveis para compra com imagem, descrição e preço.
- ➕ **Carrinho dinâmico**: Adição e remoção de quantidades específicas por produto.
- 🧾 **Formulário de entrega**: Coleta os dados do endereço do usuário com validação.
- 🧺 **Resumo do pedido**: Valor total calculado com base nas quantidades e preços dos itens.
- 📦 **Persistência local**: Os dados do carrinho permanecem salvos no `localStorage`.
- 📍 **Quantidade total no Header**: Visualização imediata da quantidade de itens adicionados.

## 🧠 Conceitos Aplicados

- Estado e imutabilidade com **Immer**
- Gerenciamento global de dados com **Context API**
- Armazenamento local com **LocalStorage**
- Validação de formulário com **Zod**
- Componentização e reuso de componentes
- Navegação com rotas dinâmicas

## 🚀 Como Executar o Projeto

### 📋 Pré-requisitos

- 🟩 [Node.js 20+](https://nodejs.org/)
- 📦 [npm 10+](https://www.npmjs.com/)

### 🔧 Instalação

1. Clone o repositório:

```bash
git clone https://github.com/joschonarth/coffee-delivery.git
```

2. Acesse a pasta do projeto:

```bash
cd coffee-delivery
```

3. Instale as dependências:

```bash
npm install
```

### ▶️ Execução

Inicie o projeto com:

```bash
npm run dev
```

Acesse o projeto em: [http://localhost:5173](http://localhost:5173)

## 🌐 Acesse a Aplicação Online

A aplicação já está disponível online! Você pode testá-la acessando o link abaixo:

🔗 [https://coffee-delivery-mu-rosy.vercel.app/](https://coffee-delivery-mu-rosy.vercel.app/)

## 🤝 Contribuições

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests com melhorias ou correções. 💡

## ⭐ Apoie este Projeto

Se curtiu o projeto, deixe uma ⭐ aqui no GitHub!

## 📞 Contato

[![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/joschonarth/)
[![Gmail](https://img.shields.io/badge/Gmail-D14836?style=for-the-badge&logo=gmail&logoColor=white)](mailto:joschonarth@gmail.com)