Aplicacao operacional para loja com frontend em React/Vite, backend em Express e integracoes com Firebase e iFood.
O projeto combina uma interface operacional modular com:
- dashboard operacional
- pedidos, vendas, clientes, produtos e estoque
- autenticacao local com PIN e perfis por papel
- persistencia local com fallback para Firestore
- backend dedicado para integracao com iFood
- React 18
- Vite 5
- React Router 6
- Express 4
- Firebase / Firestore
- Firebase Admin
src/ frontend React
backend/ servidor Express e integracoes iFood
public/ assets estaticos
docs/ documentacao auxiliar
scripts/ scripts utilitarios
- Node.js 18+
- npm
- projeto Firebase configurado, se quiser usar dados remotos
- Instale as dependencias:
npm install-
Crie o arquivo
.envcom base em.env.example. -
Preencha as variaveis de frontend (
VITE_FIREBASE_*) e, se for usar o backend do iFood, tambem as variaveis de backend.
Antes de publicar o backend em producao, configure obrigatoriamente:
FRONTEND_ORIGINcom a URL exata do frontend publicadoLOCAL_OPERATOR_PASSWORDcom um segredo realFIREBASE_ADMIN_PROJECT_IDFIREBASE_ADMIN_CLIENT_EMAILFIREBASE_ADMIN_PRIVATE_KEY
Configuracoes recomendadas:
API_RATE_LIMIT_WINDOW_MSAPI_RATE_LIMIT_MAXAUTH_RATE_LIMIT_MAXREDIS_URLREDIS_SESSION_TTL_SECONDSREDIS_MERCHANT_TTL_SECONDSREDIS_PRODUCT_TTL_SECONDSIFOOD_WEBHOOK_SECRET
Nao publique com fallback de desenvolvimento ou senha operacional fraca.
npm run dev # frontend Vite
npm run dev:backend # backend Express com watch
npm run dev:full # frontend + backend juntos
npm run redis:start # sobe Redis local via Docker
npm run redis:stop # remove o container Redis local
npm run redis:logs # acompanha logs do Redis local
npm run build # build de producao do frontend
npm run preview # preview do build
npm run deploy:preview # preview manual na Vercel
npm run deploy:prod:manual # deploy manual de producao, usar so em emergencia
npm run start:backend # sobe o backend sem watchFluxo padrao:
- rode
npm run lint - rode
npm run build - faca
git push origin main - deixe a Vercel publicar automaticamente a partir do GitHub
O deploy manual de producao deve ser excecao. Detalhes em docs/deploy-flow.md.
O backend aceita Redis opcional para cache de:
- sessoes autenticadas validadas
- merchants iFood por loja
- catalogo de produtos por loja
TTL padrao:
- sessao:
300s - merchants:
180s - produtos:
120s
Se Redis cair ou nao estiver configurado, o backend faz fallback automatico para Firestore/Firebase Admin.
- O projeto possui fallback local quando o Firebase nao esta configurado.
- O arquivo
.envesta ignorado no Git e nao foi publicado. - O repositorio foi preparado para desenvolvimento local e pode ser expandido com deploy separado para frontend e backend.
legacy/e somente arquivo morto de referencia. Nao entra emdist/, nao entra no deploy da Vercel e nao faz parte do fluxo operacional atual.legacy/nao deve ser distribuido nem modificado; a plataforma tambem ignoralegacy/via.vercelignore.- O resumo da ultima rodada de endurecimento de seguranca esta em docs/security-audit-2026-03-25.md.