| .claude | ||
| .github/workflows | ||
| Content/Tutoriais | ||
| Controllers | ||
| Data | ||
| Docs | ||
| Middleware | ||
| Models | ||
| Properties | ||
| Providers | ||
| Resources | ||
| Scripts | ||
| Services | ||
| Tests | ||
| Views | ||
| wwwroot | ||
| .gitignore | ||
| AGENTS.md | ||
| appsettings.Development.json | ||
| appsettings.json | ||
| appsettings.Production.json | ||
| BUILD_FIXES_APPLIED.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| INSTRUMENTATION_SETUP.md | ||
| package-lock.json | ||
| package.json | ||
| PACKAGES_TO_INSTALL.md | ||
| Program.cs | ||
| Qrrapido - PageSpeed Insights.pdf | ||
| Qrrapido - PageSpeed Insights.v2.pdf | ||
| QRRapidoApp.csproj | ||
| QRRapidoApp.sln | ||
| README.md | ||
| RUNTIME_FIX_APPLIED.md | ||
| vite.config.js | ||
QR Rapido - Gerador QR Code Ultrarrápido
QR Rapido é o gerador de QR codes mais rápido da web, focado em velocidade extrema e experiência do usuário. Gere códigos QR em menos de 1.2 segundos com suporte multilíngue (PT-BR, ES, EN).
🚀 Principais Características
- ⚡ Ultra-rápido: Geração média em 1.2s (0.4s para usuários premium)
- 🌐 Multilíngue: Suporte para Português, Espanhol e Inglês
- 🔒 Autenticação Social: Login com Google e Microsoft
- 👑 Sistema Premium: Stripe integrado com recursos avançados
- 📱 PWA Ready: Funciona como aplicativo móvel
- 🎨 UI Moderna: Bootstrap 5 com design focado em velocidade
- 🏗️ Escalável: MongoDB + Redis para alta performance
🎯 Funcionalidades por Usuário
👤 Usuários Anônimos
- ✅ 10 QR codes gratuitos por dia
- ✅ Tipos básicos (URL, Texto, WiFi, vCard, SMS, Email)
- ✅ Personalização básica
- ❌ Anúncios em todas as páginas
🔐 Usuários Logados (Free)
- ✅ 50 QR codes por dia
- ✅ 30 dias sem anúncios após login
- ✅ Histórico de QR codes salvos
- ✅ Download em múltiplos formatos (PNG, SVG, PDF)
👑 Usuários Premium (R$ 19,90/mês)
- ✅ QR codes ilimitados
- ✅ Sem anúncios permanentemente
- ✅ Geração prioritária (0.4s)
- ✅ QR codes dinâmicos (editáveis)
- ✅ Suporte prioritário
- ✅ API access
🛠️ Tecnologias
Backend
- ASP.NET Core 8.0 - Framework principal
- MongoDB - Banco de dados principal
- Redis - Cache distribuído
- QRCoder - Geração de QR codes otimizada
- Stripe - Processamento de pagamentos
Frontend
- Bootstrap 5 - Framework CSS
- JavaScript ES6+ - Funcionalidades interativas
- Font Awesome - Ícones
- Progressive Web App - Capacidades mobile
DevOps
- Docker & Docker Compose - Containerização
- GitHub Actions - CI/CD
- Nginx - Proxy reverso
- Azure - Cloud hosting
🚀 Instalação e Execução
Pré-requisitos
- .NET 8.0 SDK
- Docker & Docker Compose
- MongoDB (ou via Docker)
- Redis (ou via Docker)
1. Clone o Repositório
git clone https://github.com/seu-usuario/qrrapido.git
cd qrrapido
2. Configuração das Variáveis de Ambiente
Crie um arquivo .env na raiz do projeto:
# OAuth Providers
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
MICROSOFT_CLIENT_ID=your-microsoft-client-id
MICROSOFT_CLIENT_SECRET=your-microsoft-client-secret
# Stripe
STRIPE_PUBLISHABLE_KEY=pk_test_xxxxx
STRIPE_SECRET_KEY=sk_test_xxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxx
STRIPE_PRICE_ID=price_xxxxx
# Google Analytics
GA_MEASUREMENT_ID=G-XXXXXXXXXX
# AdSense
ADSENSE_CLIENT_ID=ca-pub-XXXXXXXXXX
3. Execução com Docker (Recomendado)
# Iniciar todos os serviços
docker-compose up -d
# Verificar logs
docker-compose logs -f qrrapido
4. Execução Local (Desenvolvimento)
# Restaurar dependências
dotnet restore
# Executar aplicação
dotnet run
# Ou com hot reload
dotnet watch run
5. Executar Testes
# Testes unitários
dotnet test
# Com cobertura
dotnet test --collect:"XPlat Code Coverage"
🏗️ Arquitetura
QRRapidoApp/
├── Controllers/ # Controladores MVC e API
├── Services/ # Lógica de negócio
├── Models/ # Modelos de dados
├── Views/ # Views Razor
├── Data/ # Contexto MongoDB
├── Middleware/ # Middleware customizado
├── Resources/ # Localização (PT-BR, ES, EN)
├── wwwroot/ # Arquivos estáticos
└── Tests/ # Testes unitários
Fluxo de Geração de QR
- Frontend: Coleta dados do formulário com timer
- Controller: Valida e processa requisição
- Service: Verifica cache, gera QR otimizado
- Cache: Redis para resultados frequentes
- Database: MongoDB para histórico e usuários
- Response: Base64 + metadados de performance
📊 Sistema de Monetização
Lógica Ad-Free Inteligente
graph TD
A[Usuário acessa] --> B{Logado?}
B -->|Não| C[Mostrar anúncios]
B -->|Sim| D{Premium?}
D -->|Sim| E[Sem anúncios]
D -->|Não| F{30 dias ativo?}
F -->|Sim| G[Sem anúncios + countdown]
F -->|Não| H[Anúncios + upgrade CTA]
Configuração de Tempo Ad-Free
- Padrão: 30 dias após login
- Promocional: 90 dias (Black Friday)
- Trial: 7 dias para testes A/B
- Premium: Ilimitado
🌐 Suporte Multilíngue
Idiomas Suportados
- Português (BR) - Idioma padrão
- Espanhol (ES) - Foco no mercado latino
- Inglês (EN) - Mercado global
SEO por Idioma
- URLs amigáveis:
/pt/,/es/,/en/ - Meta tags específicas por idioma
- Hreflang tags para SEO internacional
- Structured data Schema.org
🔧 Configuração
appsettings.json Principais Seções
{
"AdFree": {
"LoginMinutes": 43200, // 30 dias
"TrialMinutes": 1440 // 1 dia
},
"Performance": {
"QRGenerationTimeoutMs": 2000,
"MaxConcurrentGenerations": 100
},
"Premium": {
"FreeQRLimit": 50,
"PremiumPrice": 19.90
}
}
📈 Performance e Otimizações
Metas de Performance
- Geração QR: < 1.2s (média), < 0.4s (premium)
- Cache Hit Rate: > 80%
- Disponibilidade: 99.9%
- First Contentful Paint: < 2s
Otimizações Implementadas
- Concurrent Semaphore: Limita gerações simultâneas
- Redis Cache: Cache distribuído por conteúdo
- Error Correction Adaptativo: Menor ECC = maior velocidade
- Pixels per Module Otimizado: Qualidade vs velocidade
- CDN Ready: Assets estáticos otimizados
🧪 Testes
Cobertura de Testes
- Services: Testes unitários com Moq
- Controllers: Testes de integração
- QR Generation: Testes de performance
- Ad Logic: Testes de lógica de negócio
Executar Testes
# Todos os testes
dotnet test
# Específicos
dotnet test --filter "QRRapidoServiceTests"
# Com relatório de cobertura
dotnet test --collect:"XPlat Code Coverage"
🚀 Deploy
Produção com Docker
# Build da imagem
docker build -t qrrapido:latest .
# Deploy com compose
docker-compose -f docker-compose.prod.yml up -d
CI/CD GitHub Actions
Pipeline automatizado que executa:
- Tests: Testes unitários e integração
- Build: Build otimizado para produção
- Deploy: Deploy automático para Azure
- Monitoring: Notificações Slack
📱 PWA (Progressive Web App)
Funcionalidades
- Offline Support: Cache de assets críticos
- Install Prompt: Instalar como app móvel
- Shortcuts: Atalhos para tipos de QR
- Push Notifications: Notificações de limite
Manifest Features
{
"shortcuts": [
{
"name": "Gerar QR URL",
"url": "/?type=url"
}
]
}
🔒 Segurança
Medidas Implementadas
- Input Validation: Sanitização de todos os inputs
- Rate Limiting: Proteção contra abuse
- HTTPS Only: Redirect automático
- Secure Headers: HSTS, CSP, etc.
- OAuth Secure Flow: Google/Microsoft integração
- Stripe Webhooks: Verificação de assinatura
📊 Analytics e Monitoramento
Google Analytics 4 Events
qr_generated: Rastreamento de geraçãospeed_comparison: Comparação de velocidadeupgrade_attempt: Tentativas de upgradelanguage_change: Mudança de idioma
Métricas de Negócio
- Taxa de conversão: Anônimo → Login → Premium
- Tempo médio de geração: Performance tracking
- Uso por idioma: Análise de mercado
- Churn rate: Retenção de usuários premium
🤝 Contribuição
- Fork o projeto
- Crie uma branch (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
📝 Roadmap
Q1 2024
- API REST completa
- Webhooks para QR dinâmicos
- Dashboard de analytics premium
- Suporte a logos personalizados
Q2 2024
- Aplicativo móvel nativo
- Integração com Zapier
- QR codes em lote
- White-label solution
📄 Licença
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.
🆘 Suporte
Para Usuários
- Email: contato@qrrapido.site
- Chat: Disponível no site para usuários premium
- FAQ: Documentação completa no site
Para Desenvolvedores
- Issues: Use o GitHub Issues
- Documentação: Wiki do repositório
- API Docs: Swagger disponível em
/swagger
QR Rapido - Velocidade extrema meets experiência excepcional 🚀
Desenvolvido com ❤️ para a comunidade de desenvolvedores
No WSL - Para rodar o webhook do stripe local.
stripe listen --forward-to https://localhost:52428/pagamento/stripewebhook --skip-verify