JW Weiss couverture

Un site vitrine ++ où il est possible de gérer les images en back-office.

Liens du projet

JW couverture

Vue d'ensemble

Site vitrine pour JW Artisan Couvreur, artisan couvreur zingueur dans le département de l'Oise (60). Le site présente les différentes prestations (couverture, charpente, zinguerie, isolation, ravalement de façade…), un portfolio avec sliders avant/après, et un formulaire de demande de devis.

Technologies utilisées

  • Framework : Django 6.0.1 (Python)
  • Base de données : SQLite
  • Frontend : Django Templates, Bootstrap 5.3.8 compilé avec Sass
  • Traitement d'images : django-imagekit + Pillow (conversion WebP automatique, miniatures, variantes)
  • Comparaison avant/après : img-comparison-slider (Web Component)
  • Nettoyage fichiers : django-cleanup (suppression automatique des médias orphelins)
  • Configuration : django-environ (variables d'environnement)
  • SEO : Sitemap XML, slugs, meta descriptions dynamiques
  • Tests : unittest Django

Espace d'administration

L'application dispose d'un espace d'administration Django personnalisé permettant :

  • Gestion des services : création, modification, activation/désactivation, ordre d'affichage
  • Gestion des images : ajout d'images par service directement en inline, avec légende et ordre
  • Sliders avant/après : upload d'une image "avant" et activation du mode comparaison par image
  • Recherche et filtres : recherche par nom/contenu, filtre par statut actif et date de création

Fonctionnalités principales

  • Page d'accueil : landing page présentant tous les services actifs avec images en carte, section avant/après et appels à l'action
  • Pages de services : page dédiée par prestation avec contenu riche (HTML), carrousel d'images et sliders de comparaison
  • Formulaire de contact : demande de devis avec pré-remplissage du service, protection anti-spam (honeypot), envoi par email SMTP
  • Mentions légales : page statique
  • Sitemap XML : génération automatique pour les pages statiques et les services actifs
  • Images optimisées : conversion automatique en WebP, génération de variantes (card 4:3, medium, avant/après) via ImageSpecField
  • Menu dynamique : context processor injectant la liste des services dans tous les templates
Retour aux projets