Shortador de link moderno
Este projeto é um encurtador de link escalável e rico em recursos, construído com tecnologias modernas no .NET 8. Ele emprega arquitetura em camadas para garantir a manutenção, testabilidade e escalabilidade. O aplicativo consiste em uma API da Web ASP.NET Core como o back-end e um front-end WebAssembly Blazor Web . Ele aproveita uma ampla gama de tecnologias e padrões de design para oferecer uma experiência segura, eficiente e fácil de usar.
Principais recursos
- Encurtamento seguro de link : utiliza o hash sha-256 com gerenciamento de colisão
- Suporte de link personalizado : Crie links curtos personalizados (recurso premium)
- Monetização : gera receita por propaganda.
- Apoiando o redirecionamento monetizado e o redirecionamento simples
- Estatísticas em tempo real : rastreamento ao vivo e atualizações via Signalr
- Processamento em lote : Suporte para operações de encurtamento de links em massa
- Análise avançada : informações detalhadas, incluindo informações geográficas e informações do dispositivo com base no endereço IP e no agente do usuário.
- Autenticação segura : autenticação baseada em JWT com proteção XSS e CSRF.
- Limitação da taxa : estrangulamento de solicitação inteligente com base na sensibilidade do terminal
- Gerenciamento de link com um clique:
- Alternar a ativação do link.
- Alternar monetização do link.
- Manuseio de colisão personalizado
- Garantias de hash não numéricas
? Recursos de segurança
- JWT baseado em biscoitos somente para http e armazenamento de token de atualização.
- Proteção de CSRF via prevenção de falsificação de token.
- Hash de senha usando BCRYPT .
- Mecanismos de limitação de taxa .
- Medidas de prevenção de ataques do XSS .
- Integração de gorjeta CloudFlare para páginas para evitar bots.
- Processamento de IP e agente do usuário usando serviços confiáveis externos.
- Segredos do usuário Uso de segredos do usuário para evitar vazamentos de chaves da API ou outras informações vitais.
- Autorização baseada em função
- Validação de dados rigorosa e segura
Pilha técnica
Back -end (.NET 8)
- Arquitetura : arquitetura em camadas
- API : API da Web Core ASP.NET
- Autenticação : JWT com armazenamento seguro de biscoitos
- Banco de dados : PostGresql (Dockerized)
- Cache e corretor de mensagens : Redis (Dockerized)
- ORM : Entity Framework Core
- Comunicação em tempo real : Signalr
- Processamento de pagamento : Zibalclient
Front -end (.NET 8)
- Tecnologia : Blazor WebAssembly
- Estrutura CSS : Bootstrap
- Autenticação usando manipulador HTTP personalizado para autenticar solicitações
- Autorização : Usando o provedor estatal de autorização .NET
- Comunicação em tempo real : cliente Signalr
- LocalStorage and Notification : Blazored
- Ícones : ícones incríveis da fonte Blazorise
- Captcha : Blazor Turnstil
Pacotes -chave
- Signalr : para comunicação em tempo real
- AutomApper para mapeamentos DTO
- FluentValidation para validação de solicitação
- IPINFO para análise baseada em IP
- NPGSQL para conectividade PostgreSQL
- BCRYPT.NET para segurança de senha
- Chart.js para mostrar gráficos no painel
- Blazored : para LocalStorage e mostrando notificações
- Blazorise : para elementos da interface do usuário, como ícones
? Infraestrutura
- Banco de dados PostGresql de contêiner
- Redis em contêiner para cache e intermediação de mensagens
- Serviços de fundo para operações assíncronas
- Serviço de email para códigos de autenticação
? Recursos avançados
Monetização
- Anúncio : Suporte para ganhar dinheiro mostrando anúncios na página de redirecionamento por até 8 anúncios.
Gerenciamento de dados
- Implementação de paginação personalizada
- Gerenciamento de transações para operações de link para garantir atomicidade
- Estratégia de manuseio de colisão
- Geração de hash não numérico
Sistema de cache
- Implementação genérica de cache redis
- Suporte de cache em lote
- Desempenho otimizado para cenários de alto tráfego
- Redis fila para comunicação de serviço em segundo plano
Análise
- Análise detalhada de visitantes
- Detecção de dispositivo e navegador
- Rastreamento de localização geográfica
- Processamento de fundo de dados de IP e agente do usuário
- Painel de usuário abrangente com insights do cliente:
- Gráfico mostrando os cliques do mês passado.
- O gráfico mostrando em que hora do dia é mais provável que os cliques aconteçam.
- Clique semanalmente crescimento de crescimento
- Total de links contam
- Clique ontem
- Cliques médios por link
- Lista de links clicados superior.
- Os principais países da qual os clickers são.
- Os principais dispositivos Clickers usam.
- Tabela mostrando os 5 links encurtados mais recentes.
Encurtamento do link
- Suporte para encurtamento de link único e em lote
- Alterna para ativação e monetização de links encurtados
- Tabelas fáceis de usar e personalizadas para gerenciar links reduzidos na página Perfil de usuário e encurtador.
Atualizações em tempo real
- Integração Signalr para estatísticas ao vivo
- Atualizações de estatísticas de equilíbrio e perfil instantâneos
- Sincronização do perfil de usuário em tempo real