Raccourcissement des liens modernes
Ce projet est un raccourcissement de liens évolutif et riche en fonctionnalités construit avec les technologies modernes dans .NET 8. Il utilise une architecture en couches pour assurer la maintenabilité, la testabilité et l'évolutivité. L'application se compose d'une API ASP.NET Core Web comme backend et un blazor webassembly front-end. Il exploite un large éventail de technologies et de modèles de conception pour offrir une expérience sécurisée, efficace et conviviale.
Caractéristiques clés
- Secure du lien sécurisé : utilise le hachage SHA-256 avec la gestion des collisions
- Prise en charge des liens personnalisés : créer des liens courts personnalisés (fonctionnalité premium)
- Monétisation : génère des revenus par publicité.
- Soutenir à la fois la redirection monétisée et la redirection ordinaire
- Statistiques en temps réel : suivi en direct et mises à jour via Signalr
- Traitement par lots : prise en charge des opérations de raccourcissement des liens en vrac
- Analyse avancée : informations détaillées, y compris les informations géographiques et les informations sur l'appareil basées sur l'adresse IP et l'agent utilisateur.
- Authentification sécurisée : AUTH basé sur JWT avec la protection XSS et CSRF.
- Limitation des taux : limite de demande intelligente en fonction de la sensibilité des points de terminaison
- Gestion des liens en un seul clic:
- Basculer l'activation de la liaison.
- Basculer la monétisation des liens.
- Gestion des collisions personnalisées
- Garanties de hachage non numeric
? Fonctionnalités de sécurité
- Stockage de jetons JWT basé sur des cookies HTTP uniquement .
- Protection du CSRF via la prévention du contrefaçon de jetons.
- Hachage de mot de passe à l'aide de BCrypt .
- Mécanismes de limitation des taux .
- Les mesures de prévention des attaques XSS .
- CloudFlare Turnique Intégration pour les pages pour empêcher les bots.
- Traitement d'agent IP et utilisateur à l'aide de services de confiance externes.
- Les secrets de l'utilisateur utilisent des secrets d'utilisateurs pour éviter la fuite des clés d'API ou d'autres informations vitales.
- Autorisation basée sur les rôles
- Validation des données strictes de type type
Pile technique
Backend (.net 8)
- Architecture : architecture en couches
- API : ASP.NET Core Web API
- Authentification : JWT avec stockage de cookies sécurisé
- Base de données : PostgreSQL (docking)
- Cache et courtier de messages : redis (dockerisé)
- ORM : noyau de cadre d'entité
- Communication en temps réel : signalr
- Traitement des paiements : ZibalClient
Frontend (.net 8)
- Technologie : Blazor webassembly
- Framework CSS : bootstrap
- Authentification utilisant le gestionnaire HTTP personnalisé pour authentifier les demandes
- Autorisation : Utilisation du fournisseur d'État d'autorisation .NET
- Communication en temps réel : client signalr
- Localstorage et notification : blazored
- Icônes : Icônes impressionnantes polices de blazorise
- Captcha : blazor tourniquet
Packages clés
- SignalR : pour la communication en temps réel
- Automappeur pour les mappages DTO
- FluentValidation pour la validation de la demande
- Ipinfo pour l'analyse basée sur IP
- NPGSQL pour la connectivité PostgreSQL
- Bcrypt.net pour la sécurité du mot de passe
- Chart.js pour afficher les graphiques dans le tableau de bord
- Blazored : pour localstorage et afficher des notifications
- Blazorise : pour des éléments d'interface utilisateur comme les icônes
? Infrastructure
- Base de données postgresql conteneurisée
- Redis conteneurisé pour la mise en cache et le courtage des messages
- Services de fond pour les opérations asynchrones
- Service de messagerie pour les codes d'authentification
? Fonctionnalités avancées
Monétisation
- Publicité : support pour gagner de l'argent en affichant des annonces dans la page de redirection jusqu'à 8 annonces.
Gestion des données
- Implémentation de pagination personnalisée
- Gestion des transactions pour les opérations de liaison pour assurer l'atomicité
- Stratégie de gestion des collisions
- Génération de hachage non numérique
Système de mise en cache
- Implémentation générique de la mise en cache Redis
- Support de mise en cache par lots
- Performances optimisées pour les scénarios à haut trafic
- Reded Queue pour la communication du service de fond
Analytique
- Analyse détaillée des visiteurs
- Détection de l'appareil et du navigateur
- Suivi de l'emplacement géographique
- Traitement en arrière-plan des données d'agent IP et d'agent utilisateur
- Tableau de bord utilisateur complet avec des informations sur les clients:
- Graphique montrant les clics du mois dernier.
- Graphique montrant à quelle heure de la journée les clics sont-ils plus susceptibles de se produire.
- Croissance hebdomadaire de clics
- Nombre de liens totaux
- Cliquez hier
- Clics moyens par lien
- Liste des liens en haut.
- Les meilleurs pays des clickers sont à partir de.
- Les principaux appareils que les clics utilisent.
- Tableau montrant les 5 liens raccourcis les plus récents.
Shortening lien
- Prise en charge du raccourcissement des liens simples et par lots
- Bascule à la fois pour l'activation et la monétisation des liens raccourcis
- Des tables faciles à utiliser et personnalisées pour gérer les liens raccourcis dans le profil utilisateur et la page du raccourcissement.
Mises à jour en temps réel
- Intégration SignalR pour les statistiques en direct
- Mises à jour des statistiques instantanées et des statistiques de profil
- Synchronisation du profil utilisateur en temps réel