# QR Rapido - Gerador QR Code Ultrarrápido [![.NET](https://img.shields.io/badge/.NET-8.0-purple)](https://dotnet.microsoft.com/) [![Docker](https://img.shields.io/badge/Docker-Ready-blue)](https://www.docker.com/) [![License](https://img.shields.io/badge/License-MIT-green)](LICENSE) **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 - 📊 **Analytics**: Google Analytics 4 integrado - 🏗️ **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) - ✅ Analytics avançados - ✅ 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 ```bash 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: ```bash # 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) ```bash # Iniciar todos os serviços docker-compose up -d # Verificar logs docker-compose logs -f qrrapido ``` ### 4. Execução Local (Desenvolvimento) ```bash # Restaurar dependências dotnet restore # Executar aplicação dotnet run # Ou com hot reload dotnet watch run ``` ### 5. Executar Testes ```bash # 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 1. **Frontend**: Coleta dados do formulário com timer 2. **Controller**: Valida e processa requisição 3. **Service**: Verifica cache, gera QR otimizado 4. **Cache**: Redis para resultados frequentes 5. **Database**: MongoDB para histórico e usuários 6. **Response**: Base64 + metadados de performance ## 📊 Sistema de Monetização ### Lógica Ad-Free Inteligente ```mermaid 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 ```json { "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 ```bash # 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 ```bash # 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: 1. **Tests**: Testes unitários e integração 2. **Build**: Build otimizado para produção 3. **Deploy**: Deploy automático para Azure 4. **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 ```json { "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ção - `speed_comparison`: Comparação de velocidade - `upgrade_attempt`: Tentativas de upgrade - `language_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 1. Fork o projeto 2. Crie uma branch (`git checkout -b feature/nova-funcionalidade`) 3. Commit suas mudanças (`git commit -am 'Adiciona nova funcionalidade'`) 4. Push para a branch (`git push origin feature/nova-funcionalidade`) 5. 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](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. ```bash stripe listen --forward-to https://localhost:52428/pagamento/stripewebhook --skip-verify