MaVilleSante.fr

Recherchez facilement des établissements de santé et des praticiens près de chez vous. Annuaire gratuit avec géolocalisation, filtres par catégorie et spécialité médicale. Trouvez rapidement médecins, spécialistes, hôpitaux et cliniques.

MaVilleSante.fr

Présentation du Projet

Annuaire de santé permettant la recherche géolocalisée d'établissements médicaux (hôpitaux, cliniques, centres de santé) et de praticiens (médecins généralistes, spécialistes, professionnels paramédicaux) en France. La plateforme agrège et structure des données officielles provenant des bases FINESS et CNAMTS pour offrir une expérience de recherche optimale.

Architecture Technique

Backend

  • Framework : Django (architecture MVT)
  • Base de données : SQLite en développement, PostgreSQL en production
  • ORM : Django ORM avec migrations versionnées
  • API REST : Django REST Framework pour l'autocomplétion et les endpoints AJAX

Frontend

  • Framework CSS : Tailwind CSS via django-tailwind
  • Interactivité : JavaScript vanilla ES6+ (pas de framework JS)
  • Amélioration progressive : HTMX pour les interactions dynamiques
  • Templating : Système de templates Django avec héritage

Infrastructure

  • Serveur WSGI : Gunicorn
  • Cache : Redis avec django-redis pour mise en cache des requêtes
  • Tâches asynchrones : Celery avec Celery Beat pour l'importation automatique mensuelle des données
  • Stockage fichiers : S3-compatible via django-storages et boto3
  • Fichiers statiques : WhiteNoise avec compression et cache
  • Monitoring : Prometheus via django-prometheus pour métriques de performance

Modèles de Données

Établissements FINESS

  • Intégration complète du jeu de données FINESS (etalab_cs1100507)
  • Champs normalisés : identifiants FINESS, raison sociale, adresse complète, coordonnées GPS, catégories d'établissement
  • Classification automatique en 11 catégories générales (établissements de santé, soins de premier recours, hospitalisation à domicile, santé mentale, etc.)
  • Nettoyage et standardisation automatique des codes postaux et noms de communes
  • Système de slugs pour URLs SEO-friendly
  • Indexation optimisée pour recherches géographiques

Praticiens CNAMTS

  • Modèle basé sur la documentation CNAMTS (données ADELI)
  • Informations complètes : identité, profession, spécialité, adresse, coordonnées GPS
  • Classification en 12 catégories générales (médecins généralistes, spécialistes, chirurgie, paramédicaux, etc.)
  • Gestion des conventions (secteur 1, secteur 2, secteur 3)
  • Modèle séparé pour les horaires (HorairePraticien) avec gestion des jours, plages horaires, types de consultation
  • Contraintes d'unicité pour éviter les doublons
  • Indexation multi-champs pour performances de recherche

Fonctionnalités Principales

Recherche Avancée

  • Recherche dual-mode : Établissements ou Praticiens avec interface radio adaptative
  • Autocomplétion intelligente : API REST en temps réel pour localisation (villes, codes postaux) avec filtrage selon le type sélectionné
  • Géolocalisation HTML5 : Détection automatique de position avec géocodage inverse (API BigDataCloud) et gestion d'erreurs complète
  • Filtres par catégorie : 11 catégories pour établissements, 12 pour praticiens
  • Recherche géographique flexible : Support de formats variés (code postal seul, ville seule, code postal + ville) avec parsing intelligent
  • Pagination : 20 résultats par page avec navigation optimisée

Pages de Résultats

  • Affichage structuré avec informations essentielles (nom, adresse, téléphone, catégorie)
  • URLs SEO-friendly avec slugs pour catégories et localisations
  • Breadcrumbs contextuels pour navigation
  • Statistiques de résultats affichées
  • Liens de proximité vers établissements/praticiens similaires

Pages de Détail

  • Informations complètes de l'établissement ou praticien
  • Affichage des horaires pour les praticiens (jours, heures, modalités de consultation)
  • Coordonnées GPS intégrées pour navigation
  • Sections de recommandations (praticiens proches pour établissements, établissements proches pour praticiens)
  • Données structurées JSON-LD pour référencement

Pages de Navigation

  • Guide des catégories : Documentation complète des 11 catégories d'établissements et 12 de praticiens avec descriptions détaillées
  • Villes populaires : Classement dynamique des villes avec le plus d'établissements/praticiens
  • Pages spécialisées : Index dédiés pour établissements et praticiens avec navigation simplifiée

Blog Intégré

  • Système de blog complet avec catégories et tags
  • Affichage des derniers articles sur la page d'accueil
  • Métadonnées d'articles (auteur, date, temps de lecture, image à la une)
  • Extraits et teasers pour navigation

FAQ Interactive

  • Accordéon JavaScript pour questions/réponses
  • Données structurées JSON-LD FAQPage pour référencement Google
  • 6 questions fréquentes avec réponses détaillées

Aspects Techniques Avancés

Performance et Cache

  • Mise en cache Redis pour requêtes fréquentes
  • WhiteNoise avec compression et cache headers pour fichiers statiques
  • Optimisation des requêtes ORM avec select_related et prefetch_related
  • Indexation stratégique des champs de recherche
  • Lazy loading et pagination pour grandes listes

SEO et Accessibilité

  • Métadonnées Open Graph et Twitter Cards complètes
  • Données structurées JSON-LD (FAQPage, Organization)
  • URLs sémantiques et slugs SEO-friendly
  • Sitemaps Django automatiques
  • Balises sémantiques HTML5
  • Alt text pour images

Sécurité

  • Protection CSRF Django native
  • Sanitization des entrées utilisateur
  • Headers de sécurité configurés (HSTS, X-Frame-Options, etc.)
  • Cookies sécurisés en production (HttpOnly, Secure, SameSite)
  • Validation côté serveur et client

Automatisation

  • Tâches Celery périodiques :
    • Import automatique des données FINESS le 11 de chaque mois
    • Import automatique des données praticiens le 10 de chaque mois
    • Publication de contenu quotidienne à 23h
  • Gestion des erreurs et logs structurés avec colorlog
  • Nettoyage automatique des fichiers obsolètes via django-cleanup

Expérience Utilisateur

  • Interface responsive avec Tailwind CSS (mobile-first)
  • Transitions et animations fluides
  • Feedback visuel immédiat (boutons géolocalisation avec états loading/success/error)
  • Navigation au clavier complète (flèches, Enter, Escape pour autocomplétion)
  • Messages d'erreur contextuels et informatifs
  • Design cohérent avec palette de couleurs différenciée (bleu pour établissements, vert pour praticiens)

Déploiement et Configuration

  • Configuration multi-environnement (développement/production)
  • Variables d'environnement pour secrets et configuration
  • Support Windows et Linux (détection automatique du système)
  • Migrations de base de données versionnées
  • Collecte et compression des fichiers statiques
  • Configuration SSL/HTTPS en production

Stack Technologique Complet

  • Django
  • Django REST Framework
  • Django Tailwind
  • Gunicorn
  • Celery
  • Redis
  • PostgreSQL / SQLite
  • Boto3 / django-storages

Informations

Statut

Site ouvert

Visiter le site

Trouvez votre médecin

Galerie d'images

Index etablissement

Index etablissement

Index etablissement

Index praticien

Index praticien

Index praticien

Search result

Search result

Search result