From da57bb8dd8fbf61f5fccd4a2f157f737039538f9 Mon Sep 17 00:00:00 2001 From: Ricardo Carneiro Date: Mon, 28 Jul 2025 11:40:05 -0300 Subject: [PATCH] first commit --- README.md | 345 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 345 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a2f1b8 --- /dev/null +++ b/README.md @@ -0,0 +1,345 @@ +# 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 newline at end of file