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

Project Overview

Health directory enabling geolocated search for medical facilities (hospitals, clinics, health centers) and practitioners (general practitioners, specialists, paramedical professionals) in France. The platform aggregates and structures official data from FINESS and CNAMTS databases to provide an optimal search experience.

Technical Architecture

Backend

  • Framework: Django (MVT architecture)
  • Database: SQLite for development, PostgreSQL for production
  • ORM: Django ORM with versioned migrations
  • REST API: Django REST Framework for autocomplete and AJAX endpoints

Frontend

  • CSS Framework: Tailwind CSS via django-tailwind
  • Interactivity: Vanilla JavaScript ES6+ (no JS framework)
  • Progressive Enhancement: HTMX for dynamic interactions
  • Templating: Django template system with inheritance

Infrastructure

  • WSGI Server: Gunicorn
  • Cache: Redis with django-redis for request caching
  • Asynchronous Tasks: Celery with Celery Beat for automatic monthly data import
  • File Storage: S3-compatible via django-storages and boto3
  • Static Files: WhiteNoise with compression and caching
  • Monitoring: Prometheus via django-prometheus for performance metrics

Data Models

FINESS Healthcare Facilities

  • Complete integration of FINESS dataset (etalab_cs1100507)
  • Normalized fields: FINESS identifiers, legal name, complete address, GPS coordinates, facility categories
  • Automatic classification into 11 general categories (healthcare facilities, primary care structures, home hospitalization, mental health, etc.)
  • Automatic cleaning and standardization of postal codes and city names
  • Slug system for SEO-friendly URLs
  • Optimized indexing for geographical searches

CNAMTS Practitioners

  • Model based on CNAMTS documentation (ADELI data)
  • Complete information: identity, profession, specialty, address, GPS coordinates
  • Classification into 12 general categories (general practitioners, specialists, surgery, paramedics, etc.)
  • Convention management (sector 1, sector 2, sector 3)
  • Separate model for schedules (HorairePraticien) with day, time slot, consultation type management
  • Uniqueness constraints to avoid duplicates
  • Multi-field indexing for search performance

Main Features

Advanced Search

  • Dual-mode search: Facilities or Practitioners with adaptive radio interface
  • Smart autocomplete: Real-time REST API for location (cities, postal codes) with filtering based on selected type
  • HTML5 Geolocation: Automatic position detection with reverse geocoding (BigDataCloud API) and complete error handling
  • Category filters: 11 categories for facilities, 12 for practitioners
  • Flexible geographic search: Support for various formats (postal code alone, city alone, postal code + city) with intelligent parsing
  • Pagination: 20 results per page with optimized navigation

Results Pages

  • Structured display with essential information (name, address, phone, category)
  • SEO-friendly URLs with slugs for categories and locations
  • Contextual breadcrumbs for navigation
  • Displayed result statistics
  • Proximity links to similar facilities/practitioners

Detail Pages

  • Complete information for facility or practitioner
  • Schedule display for practitioners (days, hours, consultation modalities)
  • Integrated GPS coordinates for navigation
  • Recommendation sections (nearby practitioners for facilities, nearby facilities for practitioners)
  • JSON-LD structured data for SEO

Navigation Pages

  • Category Guide: Complete documentation of 11 facility categories and 12 practitioner categories with detailed descriptions
  • Popular Cities: Dynamic ranking of cities with the most facilities/practitioners
  • Specialized Pages: Dedicated indexes for facilities and practitioners with simplified navigation

Integrated Blog

  • Complete blog system with categories and tags
  • Display of latest articles on homepage
  • Article metadata (author, date, reading time, featured image)
  • Excerpts and teasers for navigation

Interactive FAQ

  • JavaScript accordion for Q&A
  • JSON-LD FAQPage structured data for Google SEO
  • 6 frequently asked questions with detailed answers

Advanced Technical Aspects

Performance and Caching

  • Redis caching for frequent queries
  • WhiteNoise with compression and cache headers for static files
  • ORM query optimization with select_related and prefetch_related
  • Strategic indexing of search fields
  • Lazy loading and pagination for large lists

SEO and Accessibility

  • Complete Open Graph and Twitter Cards metadata
  • JSON-LD structured data (FAQPage, Organization)
  • Semantic URLs and SEO-friendly slugs
  • Automatic Django sitemaps
  • HTML5 semantic tags
  • Alt text for images

Security

  • Native Django CSRF protection
  • User input sanitization
  • Configured security headers (HSTS, X-Frame-Options, etc.)
  • Secure cookies in production (HttpOnly, Secure, SameSite)
  • Server-side and client-side validation

Automation

  • Periodic Celery Tasks:
    • Automatic FINESS data import on the 11th of each month
    • Automatic practitioner data import on the 10th of each month
    • Daily content publication at 11 PM
  • Error handling and structured logs with colorlog
  • Automatic cleanup of obsolete files via django-cleanup

User Experience

  • Responsive interface with Tailwind CSS (mobile-first)
  • Smooth transitions and animations
  • Immediate visual feedback (geolocation buttons with loading/success/error states)
  • Complete keyboard navigation (arrows, Enter, Escape for autocomplete)
  • Contextual and informative error messages
  • Consistent design with differentiated color palette (blue for facilities, green for practitioners)

Deployment and Configuration

  • Multi-environment configuration (development/production)
  • Environment variables for secrets and configuration
  • Windows and Linux support (automatic system detection)
  • Versioned database migrations
  • Static file collection and compression
  • SSL/HTTPS configuration in production

Complete Technology Stack

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

Information

Status

Site Open

Image Gallery

Index etablissement

Index etablissement

Index etablissement

Index praticien

Index praticien

Index praticien

Search result

Search result

Search result