Skip to content

Menephyl/01-Brazukas-System

Repository files navigation

🇧🇷🇵🇾 Brazukas Delivery — MVP

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.


📌 Visão Geral

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.

Principais Funcionalidades Implementadas

  • 🍽️ 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.

🚀 Tecnologias

Front-end (/frontend)

  • React (Vite)
  • TailwindCSS (Estilização)
  • Lucide React (Ícones)
  • JavaScript (ES6+)

Back-end

  • Docker
  • Node.js

Infraestrutura

  • Docker & Docker Compose
  • Git

🧱 Como Rodar o Projeto

Pré-requisitos

Passo a Passo

  1. Clone o repositório:

    git clone https://github.com/thalissongoncalves/Brazukas-Delivery.git
    cd Brazukas-Delivery
  2. Inicie o Back-end e Banco de Dados:

    docker compose up --build

    O servidor backend estará rodando em http://localhost:3000.

  3. 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
  4. Inicie o Front-end (em outro terminal):

    cd frontend
    npm install
    npm run dev

    O frontend estará acessível em http://localhost:5173 (ou porta indicada pelo Vite).


🔐 Variáveis de Ambiente

Back-end (/backend/.env)

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

Front-end (/frontend/.env)

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

Notas sobre NODE_ENV

  • development: Mostra logs de debug, error details completos, hot reload
  • production: 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.


🚀 Deploy

Visão geral

  • 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).

1. Backend

  1. Crie um projeto no Railway/Render e conecte o repositório (pasta backend ou monorepo com root no repositório).
  2. 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=production
    • PORT — 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)
  3. Comando de start: npm start (ou node src/index.js).
  4. Após o deploy, anote a URL da API (ex.: https://seu-backend.railway.app). Será usada no frontend.

2. Frontend

  1. Crie um projeto na Vercel/Netlify e conecte o repositório (pasta frontend como root ou configure o diretório raiz).
  2. 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_KEY para pagamento com cartão.
  3. Comando de build: npm run build. Diretório de publicação: dist.
  4. Após o deploy, anote a URL do app (ex.: https://brazukas-delivery.vercel.app) e adicione-a em CORS_ORIGINS no backend.

3. Ajustes pós-deploy

  • CORS: No backend, CORS_ORIGINS deve incluir exatamente a URL do frontend (com https://). 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/webhook e defina STRIPE_WEBHOOK_SECRET no backend.
  • Documentar URLs: Atualize este README ou um .env.example com as URLs de produção (sem expor segredos) para a equipe.

📂 Estrutura do Projeto

/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

👥 Equipe

Área Nome
Front-end Yan Menephyl
Back-end Thálisson Gonçalves

📝 Status do Desenvolvimento

  • 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)

Licença

MIT — livre para uso comercial e expansão.

About

mvp of the delivery system sass like ifood

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages