Annuaire des Services de Ville - MaVilleEnPoche.fr
Vue d'ensemble
Développement d'une plateforme web complète d'annuaire des services et commerces locaux pour toutes les communes françaises. Le site permet aux utilisateurs de rechercher et consulter les informations pratiques (horaires, contacts, adresses) de tous les commerces et services disponibles dans leur commune.
Architecture technique
Backend
- Framework principal : Django avec architecture MVT (Model-View-Template)
- Base de données : PostgreSQL en production, SQLite en développement
- API REST : Django REST Framework pour les endpoints de recherche et géolocalisation
- Cache : Redis pour optimiser les performances
- Tâches asynchrones : Celery avec Redis comme broker
- Stockage : MinIO (compatible S3) pour les fichiers statiques
Frontend
- Framework CSS : Tailwind CSS avec compilation personnalisée
- JavaScript : Vanilla JS pour les interactions dynamiques
- Responsive Design : Mobile-first avec breakpoints adaptatifs
- Géolocalisation : API HTML5 Geolocation pour la localisation automatique
Fonctionnalités principales
Recherche et navigation
- Recherche en temps réel des communes par nom, code postal ou code INSEE
- Géolocalisation automatique pour trouver la commune la plus proche
- Navigation par lettres alphabétiques et filtres par région/département
- Pagination optimisée pour gérer de grandes quantités de données
Gestion des données
- Import automatique des données depuis data.gouv.fr via tâches Celery
- Synchronisation quotidienne des informations des commerces
- Catégorisation automatique des commerces avec système de traductions
- Gestion des relations entre communes et commerces
API et intégrations
- API REST pour la recherche de communes
- API de géolocalisation pour trouver la commune la plus proche
- Intégration avec OpenStreetMap pour les données géographiques
- Publication automatique sur les réseaux sociaux (Facebook, Twitter, Bluesky)
Modèles de données
Commune
- Informations administratives (code INSEE, nom, codes postaux)
- Données géographiques (coordonnées GPS, surface, population)
- Contour géographique au format GeoJSON
- Relations avec les commerces de la commune
Commerce
- Informations de base (nom, enseigne, type, adresse)
- Coordonnées géographiques précises
- Horaires d'ouverture et informations de contact
- Accessibilité (fauteuil roulant)
- Catégorisation automatique avec système de traductions
CommerceCategory
- Système de catégories hiérarchiques
- Traductions françaises automatiques
- Personnalisation visuelle (couleurs, icônes)
- Ordre d'affichage configurable
Optimisations techniques
Performance
- Cache Redis pour les requêtes fréquentes
- Pagination optimisée pour les grandes listes
- Indexation des champs de recherche
- Compression des fichiers statiques
Sécurité
- HTTPS obligatoire en production
- Headers de sécurité configurés (HSTS, X-Frame-Options)
- Validation des données d'entrée
- Protection CSRF sur tous les formulaires
Maintenance
- Tâches Celery programmées pour l'import automatique des données
- Système de logging structuré avec niveaux de verbosité
- Gestion des erreurs et monitoring
- Backup automatique de la base de données
Déploiement
- Containerisation avec Docker et Docker Compose
- Serveur WSGI Gunicorn pour la production
- Reverse proxy avec configuration SSL
- Monitoring et alertes automatisées
Technologies utilisées
- Django, PostgreSQL, Redis, Celery
- Django REST Framework, Django Tailwind
- MinIO, Boto3 pour le stockage
- Docker, Gunicorn pour le déploiement
- HTML5 Geolocation, Vanilla JavaScript
- Tailwind CSS, Responsive Design
Résultats
Le site référence actuellement plus de 35 000 communes françaises et plusieurs centaines de milliers de commerces et services, avec une interface utilisateur intuitive et des performances optimisées pour une expérience fluide sur tous les appareils.