Sistema de Análise de Clientes com IA para Lojas Físicas
ShopFlow é um sistema de análise comportamental para lojas físicas que usa visão computacional e IA para:
- 🎥 Detectar pessoas em tempo real com YOLO11n
- 👥 Identificar grupos de clientes automaticamente
- 👤 Reconhecer funcionários cadastrados via face recognition
- 📊 Calcular clientes potenciais com lógica inteligente
- 📈 Visualizar métricas em dashboard ao vivo
Arquitetura: Câmera RTSP → Backend (FastAPI + Docker) → Frontend (Next.js) → Supabase
- ✅ YOLO11n para detecção de pessoas (4-5 FPS)
- ✅ DBSCAN para agrupamento automático
- ✅ Face recognition para funcionários
- ✅ Cálculo de clientes potenciais
- ✅ Stream MJPEG com bounding boxes coloridos
- ✅ Dashboard com métricas atualizadas (5s)
- ✅ Gráficos de histórico 24h
- ✅ Interface responsiva e moderna
- ✅ Cadastro com upload de foto
- ✅ Validação automática de face
- ✅ Listagem e gerenciamento
- ✅ Privacy-first (apenas embeddings)
- Docker + Docker Compose
- Node.js 18+
- Conta Supabase (free tier)
- Câmera IP com RTSP
cd backend
cp .env.production.template .env
# Edite .env com suas credenciais Supabase
docker-compose up -dcd frontend
npm install
npm run dev- Frontend: http://localhost:3000
- Backend API: http://localhost:8001/docs
👉 Para setup completo: SETUP.md
┌─────────────────────────────────────────┐
│ Frontend (Next.js) │
│ Dashboard | Câmera | Funcionários │
└─────────────────────────────────────────┘
│ HTTPS
▼
┌─────────────────────────────────────────┐
│ Backend (FastAPI + Docker) │
│ YOLO11n | DBSCAN | Face Recognition │
│ RTSP Processor | MJPEG Stream │
└─────────────────────────────────────────┘
│ │
│ RTSP │ PostgreSQL
▼ ▼
┌──────────────┐ ┌──────────────────┐
│ Câmera IP │ │ Supabase DB │
└──────────────┘ └──────────────────┘
👉 Detalhes técnicos: ARCHITECTURE.md
- Framework: FastAPI 0.115.0
- IA: YOLO11n, DBSCAN, face_recognition
- Video: OpenCV, RTSP
- Database: Supabase PostgreSQL
- Deploy: Docker Compose
- Framework: Next.js 15.5.2
- UI: React 18, TypeScript, Tailwind
- Gráficos: Recharts
- Deploy: Vercel
- VPS: Contabo/DigitalOcean (4 vCPU, 8GB RAM)
- Database: Supabase (Free/Pro tier)
- VPN: Tailscale (acesso câmera)
| Componente | Opção | Custo |
|---|---|---|
| VPS Backend | Contabo VPS M | R$ 48/mês |
| Database | Supabase Free | R$ 0 |
| Frontend | Vercel Free | R$ 0 |
| VPN | Tailscale Free | R$ 0 |
| TOTAL | R$ 48/mês |
Escalável para múltiplas lojas com custos proporcionais
- 📖 SETUP.md - Setup completo (dev + produção)
- 🏗️ ARCHITECTURE.md - Arquitetura técnica detalhada
- 🔌 docs/API.md - Referência completa da API
- 🚀 docs/DEPLOYMENT.md - Deploy em produção
- 🧪 docs/TESTING.md - Testes e validação
- 🔧 docs/TROUBLESHOOTING.md - Solução de problemas
- 📝 CHANGELOG.md - Histórico de versões
- 📁 docs/archive/ - Documentação histórica
- Detecção de pessoas (YOLO11n)
- Agrupamento de clientes (DBSCAN)
- Reconhecimento facial de funcionários
- Dashboard em tempo real
- Stream MJPEG ao vivo
- Deploy production-ready
- Suporte multi-câmera
- Heatmap de movimento
- Análise de tempo de permanência
- Relatórios PDF exportáveis
- Alertas em tempo real (WhatsApp/Email)
- Microservices (separar IA, API, Stream)
- Redis cache
- Load balancer
- CDN para stream
| Métrica | Valor | Alvo |
|---|---|---|
| Response Time (avg) | 150ms | < 500ms ✅ |
| FPS Processamento | 4-5 | > 3 ✅ |
| CPU Usage | 45-60% | < 80% ✅ |
| RAM Usage | 50-55% | < 80% ✅ |
| Processing/Frame | 180-220ms | < 500ms ✅ |
- ✅ 1-2 câmeras simultâneas
- ✅ Até 20 pessoas por frame
- ✅ 10+ funcionários cadastrados
- ✅ Operação 24/7 contínua
- ✅ Service Key do Supabase nunca exposta no frontend
- ✅ CORS configurado corretamente
- ✅ Firewall UFW na VPS
- ✅ Tailscale VPN para acesso câmera
- ✅ HTTPS automático no Vercel
- ✅ Variáveis de ambiente não commitadas
- ✅ Face recognition: apenas embeddings (sem fotos armazenadas)
- Rate limiting na API
- JWT authentication para endpoints sensíveis
- Backup automático do Supabase
- SSL/TLS no backend (Let's Encrypt)
- Monitoramento com Sentry
- Fork o projeto
- Crie uma branch (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Add MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Abra uma issue descrevendo:
- Comportamento esperado
- Comportamento atual
- Steps to reproduce
- Logs relevantes
Abra uma issue com:
- Descrição da feature
- Caso de uso
- Mockups (se aplicável)
- 📖 Documentação: docs/
- 🐛 Issues: GitHub Issues
- 💬 Discussões: GitHub Discussions
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para detalhes.
- YOLO (Ultralytics) - Detecção de objetos
- face_recognition (Adam Geitgey) - Reconhecimento facial
- Supabase - Database managed
- Vercel - Hospedagem frontend
- FastAPI - Framework backend
- Next.js - Framework frontend
✅ FASE 1: BACKEND 100% ✅
✅ FASE 2: FRONTEND 100% ✅
✅ FASE 3: INFRAESTRUTURA 100% ✅
✅ FASE 4: TESTES 100% ✅
✅ FASE 5: DOCUMENTAÇÃO 100% ✅
🎉 MVP PRONTO PARA PRODUÇÃO! 🚀