QrRapido/README.md
Ricardo Carneiro da57bb8dd8 first commit
2025-07-28 11:40:05 -03:00

345 lines
9.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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*