ShowMySites - Plateforme de Répertoire de Sites Web
Vue d'ensemble
ShowMySites est une plateforme web moderne développée en Django qui permet aux utilisateurs de créer, gérer et découvrir des sites web. Le projet combine un système de répertoire de sites web avec des fonctionnalités avancées de gestion de profils utilisateurs, de vérification de backlinks et d'API REST.
Architecture Technique
Backend
- Framework principal : Django avec architecture MVT (Model-View-Template)
- Base de données : SQLite en développement, PostgreSQL en production
- Authentification : django-allauth avec support Google OAuth
- API REST : Django REST Framework avec authentification par token
- Traitement asynchrone : Celery avec Redis pour les tâches en arrière-plan
Frontend
- CSS Framework : Tailwind CSS avec django-tailwind
- Interface utilisateur : Templates Django avec système de composants
- Optimisation des images : Conversion automatique en format WebP
- Responsive Design : Interface adaptative pour tous les appareils
Fonctionnalités Principales
Gestion des Sites Web
- Création et édition : Interface complète pour ajouter/modifier des sites web
- Catégorisation : 15 catégories prédéfinies (SaaS, Blog, E-commerce, etc.)
- Métadonnées enrichies : Logo, description, tagline, liens sociaux
- Système de coupons : Gestion des codes promo avec dates d'expiration
- Statuts premium : Sites mis en avant et choix des fondateurs
Système de Profils Utilisateurs
- Profils personnalisés : Avatars, biographies, liens sociaux
- URLs personnalisées : Système de slugs uniques pour chaque profil
- Authentification sociale : Connexion via Google OAuth
- Gestion des comptes : Paramètres, suppression, choix d'username
Vérification Automatique des Backlinks
- Surveillance continue : Tâches Celery programmées quotidiennement
- Parsing intelligent : Analyse HTML avec BeautifulSoup
- Détection de nofollow : Filtrage des liens non suivis
- Gestion des erreurs : Timeouts et retry automatiques
- Logs détaillés : Suivi complet des vérifications
Fonctionnalités Avancées
Système de Recherche
- Suggestions en temps réel : API AJAX pour l'autocomplétion
- Recherche par catégorie : Filtrage dynamique
- Vérification d'username : Disponibilité en temps réel
Administration
- Dashboard admin : Statistiques détaillées
- Gestion des sites inactifs : Modération et suppression
- Système de backlinks : Suivi et validation
- Leaderboard : Classement des sites populaires
Optimisations Techniques
- Stockage cloud : Intégration MinIO/S3 pour les médias
- Cache Redis : Amélioration des performances
- Compression des assets : WhiteNoise pour les fichiers statiques
- Sécurité HTTPS : Configuration complète en production
- Logs colorés : Système de logging avancé avec colorlog
Infrastructure de Déploiement
Environnements
- Développement : Configuration locale avec SQLite
- Production : Docker avec Gunicorn et Nginx
- Variables d'environnement : Gestion sécurisée des secrets
Monitoring et Maintenance
- Tâches programmées : Vérification quotidienne des backlinks
- Gestion des erreurs : Pages d'erreur personnalisées
- Backup automatique : Sauvegarde de la base de données
Technologies Utilisées
- Backend : Django, Celery, Redis, PostgreSQL
- Frontend : Tailwind CSS, HTML5, JavaScript
- API : Django REST Framework
- Stockage : MinIO/S3, WhiteNoise
- Authentification : django-allauth, Google OAuth
- Parsing : BeautifulSoup, Requests
- Images : Pillow (PIL)
- Déploiement : Docker, Gunicorn
Points Forts du Projet
- Architecture modulaire : Séparation claire des responsabilités
- Scalabilité : Support multi-environnements
- Sécurité : Authentification robuste et validation des données
- Performance : Cache Redis et optimisation des images
- Maintenabilité : Code bien structuré avec logging détaillé
- UX moderne : Interface responsive et intuitive
Ce projet démontre une maîtrise complète du développement web moderne, combinant backend robuste, frontend moderne et infrastructure scalable pour créer une plateforme de répertoire de sites web performante et évolutive.