first commit
This commit is contained in:
commit
da57bb8dd8
345
README.md
Normal file
345
README.md
Normal file
@ -0,0 +1,345 @@
|
|||||||
|
# QR Rapido - Gerador QR Code Ultrarrápido
|
||||||
|
|
||||||
|
[](https://dotnet.microsoft.com/)
|
||||||
|
[](https://www.docker.com/)
|
||||||
|
[](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*
|
||||||
Loading…
Reference in New Issue
Block a user