Plataforma de delivery focada na fronteira BR–PY/US, parte do ecossistema Brazukas.
Este repositório contém o código do MVP (Produto Mínimo Viável) do módulo de Delivery, dividido em front-end e back-end.
O Brazukas Delivery permite que usuários encontrem restaurantes e lojas na região, visualizem cardápios e façam pedidos. O sistema é construído para ser rápido, moderno e fácil de usar.
- 🍽️ Listagem de Lojas: Visualização de restaurantes e lojas parceiras.
- � Busca e Filtros: Pesquisa por nome ou categoria.
- � Design Responsivo: Interface otimizada para mobile e desktop (Mobile First).
- � UI Premium: Design moderno com Glassmorphism, Dark Mode e animações.
- ⚙️ API RESTful: Backend robusto servindo dados via JSON.
- 🐳 Ambiente Dockerizado: Setup simples com Docker Compose.
- React (Vite)
- TailwindCSS (Estilização)
- Lucide React (Ícones)
- JavaScript (ES6+)
- Docker
- Node.js
- Docker & Docker Compose
- Git
- Node.js (v18+)
- Docker Desktop
-
Clone o repositório:
git clone https://github.com/thalissongoncalves/Brazukas-Delivery.git cd Brazukas-Delivery -
Inicie o Back-end e Banco de Dados:
docker compose up --build
O servidor backend estará rodando em
http://localhost:3000. -
Configure as Variáveis de Ambiente:
Back-end:
cd backend cp .env.example .env # Edite o arquivo .env com suas configurações # As variáveis essenciais são: MONGODB_URI, JWT_SECRET, PORT, NODE_ENV
Front-end:
cd frontend cp .env.example .env # Edite o arquivo .env com suas configurações # As variáveis essenciais são: VITE_API_URL, VITE_SOCKET_URL
-
Inicie o Front-end (em outro terminal):
cd frontend npm install npm run devO frontend estará acessível em
http://localhost:5173(ou porta indicada pelo Vite).
| Variável | Descrição | Exemplo |
|---|---|---|
MONGODB_URI |
URL de conexão MongoDB | mongodb://localhost:27017/brazukas-delivery ou mongodb+srv://user:[email protected]/brazukas |
JWT_SECRET |
Chave secreta para tokens JWT (min 32 chars) | sua_chave_secreta_muito_forte_aqui |
JWT_EXPIRE |
Tempo de expiração do token | 7d |
NODE_ENV |
Ambiente de execução | development ou production |
PORT |
Porta do servidor | 5000 |
CORS_ORIGINS |
Origens permitidas (CORS e Socket.io), separadas por vírgula | http://localhost:5173 ou em produção https://seu-app.vercel.app |
STRIPE_SECRET_KEY |
Chave secreta Stripe (opcional) | sk_test_... |
SENTRY_DSN |
URL do Sentry para error tracking (opcional) | https://[email protected]/... |
Arquivo de Referência: backend/.env.example
| Variável | Descrição | Exemplo |
|---|---|---|
VITE_API_URL |
URL base da API | http://localhost:5000/api |
VITE_SOCKET_URL |
URL do servidor Socket.IO | http://localhost:5000 |
NODE_ENV |
Ambiente de execução | development ou production |
VITE_STRIPE_PUBLISHABLE_KEY |
Chave pública Stripe (opcional) | pk_test_... |
VITE_SENTRY_DSN |
URL do Sentry (opcional) | https://[email protected]/... |
Arquivo de Referência: frontend/.env.example
development: Mostra logs de debug, error details completos, hot reloadproduction: Sem logs de debug, erro genéricos ao usuário, otimizado para performance
Variáveis marcadas como (opcional) são para recursos avançados (pagamento, análise de erros) e não são necessárias para rodar o MVP localmente.
- Backend: Node.js (Express + Socket.io). Hospedagens sugeridas: Railway, Render, Fly.io.
- Frontend: Build estático (Vite). Hospedagens sugeridas: Vercel, Netlify.
- Banco: MongoDB Atlas (replica set recomendado para transações em pedidos).
- Crie um projeto no Railway/Render e conecte o repositório (pasta
backendou monorepo com root no repositório). - Defina as variáveis de ambiente (obrigatórias em produção):
MONGODB_URI— URL do cluster Atlas (ex.:mongodb+srv://user:[email protected]/brazukas?retryWrites=true&w=majority)JWT_SECRET— string longa e aleatória (min 32 caracteres)NODE_ENV=productionPORT— geralmente definido pelo host (ex.: 5000)CORS_ORIGINS— URL(s) do frontend em produção, separadas por vírgula (ex.:https://brazukas-delivery.vercel.app)
- Comando de start:
npm start(ounode src/index.js). - Após o deploy, anote a URL da API (ex.:
https://seu-backend.railway.app). Será usada no frontend.
- Crie um projeto na Vercel/Netlify e conecte o repositório (pasta
frontendcomo root ou configure o diretório raiz). - Defina as variáveis de ambiente de build:
VITE_API_URL— URL da API +/api(ex.:https://seu-backend.railway.app/api)VITE_SOCKET_URL— mesma URL da API sem/api(ex.:https://seu-backend.railway.app)- Opcional:
VITE_STRIPE_PUBLISHABLE_KEYpara pagamento com cartão.
- Comando de build:
npm run build. Diretório de publicação:dist. - Após o deploy, anote a URL do app (ex.:
https://brazukas-delivery.vercel.app) e adicione-a emCORS_ORIGINSno backend.
- CORS: No backend,
CORS_ORIGINSdeve incluir exatamente a URL do frontend (comhttps://). Sem isso, o navegador bloqueará requisições. - Stripe webhook: Se usar pagamento, no Dashboard Stripe configure o endpoint do webhook:
https://sua-api.com/api/payments/webhooke definaSTRIPE_WEBHOOK_SECRETno backend. - Documentar URLs: Atualize este README ou um
.env.examplecom as URLs de produção (sem expor segredos) para a equipe.
/Brazukas-Delivery
├── /backend # API Node.js/Express
│ ├── index.js # Entry point da API
│ ├── seed.js # Script de população inicial do BD
│ └── Dockerfile # Configuração da imagem Backend
├── /frontend # React App
│ ├── /src # Código fonte React
│ │ ├── /components # Componentes reutilizáveis
│ │ ├── /pages # Páginas da aplicação
│ │ └── index.css # Estilos globais (Tailwind)
│ └── vite.config.js # Configuração do Vite
└── docker-compose.yaml # Orquestração dos containers
| Área | Nome |
|---|---|
| Front-end | Yan Menephyl |
| Back-end | Thálisson Gonçalves |
- Listagem de Lojas (Front + Back)
- Cadastro de Lojas (API + Exemplo Front)
- Configuração Docker
- Sistema de Pedidos
- Autenticação de Usuários (login, registro, roles, aprovação lojista/entregador)
- Painel do Restaurante (dashboard, Kanban, configurações, onboarding)
MIT — livre para uso comercial e expansão.