Business CMS – 5 thèmes

État : Prototype

Période
À compléter avec les dates réelles de développement.
Stack
  • PHP 8.2+
  • Laravel 12
  • Filament 5
  • Blade
  • Tailwind CSS v4
  • Vite
  • SQLite
  • Docker
  • FrankenPHP
  • Caddy
  • GitHub Actions
  • Larastan
  • Laravel Pint

En bref

Conception et développement d'un CMS professionnel destiné à la création de sites vitrines pour PME, indépendants, professions libérales, commerces et ASBL. Le produit propose cinq thèmes personnalisables, des modules activables et renommables, une administration par rôles, des pages composées de blocs et des fonctionnalités intégrées de sécurité et de maintenance. L'installation, la configuration et le déploiement sont pensés pour permettre à Solideo Digital de réutiliser le même socle applicatif pour différents clients, sans modifier le code pour chaque site.

Le besoin

Je souhaite disposer d'un socle applicatif réutilisable pour proposer des sites vitrines professionnels à différents types d'organisations : PME, indépendants, professions libérales, commerces et ASBL.

L'objectif est de réduire le travail spécifique nécessaire à chaque nouvelle installation tout en permettant une personnalisation adaptée à l'identité, à l'activité et aux besoins du client.

Le CMS doit permettre aux utilisateurs de gérer leurs contenus depuis une administration, sans devoir intervenir dans le code. Il doit également intégrer les principales fonctionnalités nécessaires à un site professionnel, notamment les pages, les modules éditoriaux, les coordonnées de l'entreprise, les pages légales et les formulaires de contact.

Choix d'architecture

Le projet repose sur Laravel 12 pour la structure applicative et la gestion des fonctionnalités métier. Filament 5 fournit l'interface d'administration, tandis que Blade, Tailwind CSS v4 et Vite assurent le rendu et la compilation des ressources du site public.

SQLite simplifie l'installation et la gestion de chaque instance. Une commande dédiée permet de préparer une installation, de configurer l'identité initiale et de créer le compte super administrateur.

L'architecture privilégie la configuration plutôt que la modification du code : cinq thèmes sont disponibles, les couleurs, les polices et l'identité visuelle sont personnalisables, et les modules peuvent être activés, renommés et réordonnés.

Le déploiement repose sur une image Docker utilisant FrankenPHP, placée derrière Caddy. Des commandes Artisan dédiées automatisent plusieurs opérations d'installation, de maintenance, de contrôle de configuration et de sauvegarde.

Ma contribution

Conception et développement du CMS en tant que socle applicatif réutilisable pour les projets de sites vitrines de Solideo Digital.

Mise en place des cinq thèmes, des paramètres de personnalisation, des modules éditoriaux configurables, des pages composées de blocs et des profils de démonstration destinés à différents types de clients.

Développement des fonctions d'administration et de gestion des rôles, des mécanismes de configuration des e-mails, des commandes d'installation et de maintenance, ainsi que des fonctionnalités de sauvegarde et de vérification de la configuration de production.

Intégration des contrôles de qualité, des tests automatisés et du processus de construction de l'image Docker. Rédaction de la documentation technique, du guide utilisateur et des procédures de déploiement.

Difficulté technique et résolution

Le principal enjeu est de concilier la réutilisabilité du produit avec les besoins différents des organisations utilisatrices.

La solution consiste à centraliser les paramètres de l'entreprise et de l'identité visuelle, à proposer cinq thèmes distincts et à rendre les modules configurables depuis l'administration. Les pages peuvent être construites à partir de blocs de contenu, ce qui permet de varier leur structure sans créer systématiquement de nouvelles vues spécifiques.

La gestion des installations constitue un second enjeu. Une commande dédiée initialise le site, tandis que les commandes de maintenance permettent de retirer les données de démonstration, de gérer les comptes administrateurs, de vérifier la configuration de production et de sauvegarder la base de données.

Enfin, le projet intègre des contrôles de qualité et des mécanismes de sécurité afin de faciliter les évolutions et de limiter les erreurs de configuration lors du déploiement.

Tests, sécurité et déploiement

Le projet dispose d'une procédure de contrôle qualité qui regroupe le formatage du code avec Laravel Pint, l'analyse statique avec Larastan, la compilation des ressources avec Vite et l'exécution des tests.

Les mesures de sécurité prévues comprennent une politique CSP stricte, des protections anti-spam sur les formulaires, le consentement des visiteurs, la gestion des rôles et la double authentification. Les messages de contact sont conservés même lorsqu'un envoi d'e-mail échoue, et les anciens messages peuvent être supprimés selon la durée de conservation configurée.

Le déploiement utilise Docker et FrankenPHP derrière Caddy. La documentation décrit l'installation, les mises à jour, les sauvegardes et l'ajout d'un nouveau site.

Résultat

Le projet dispose d'un CMS conçu pour être installé et configuré selon plusieurs profils de clients. Il comprend cinq thèmes, des modules éditoriaux configurables, une administration par rôles, des commandes d'installation et de maintenance, ainsi qu'une procédure de contrôle qualité.

Une démonstration en ligne permet de découvrir les possibilités de personnalisation. Cinq profils fictifs, correspondant à différents types d'organisations, servent à présenter les thèmes et les fonctionnalités du produit.

Le dépôt comprend également une feuille de route, un journal de développement, une documentation de déploiement et un guide utilisateur.

Démonstration : https://businesscms.solideodigital.duckdns.org/

Limites et améliorations envisagées

Le CMS est principalement conçu pour les sites vitrines et ne constitue pas, dans son état actuel, une solution universelle pour tous les besoins web.

Les évolutions pourront porter sur l'enrichissement des modules, l'amélioration de l'expérience d'administration, la validation progressive des exigences de sécurité et l'adaptation des procédures de déploiement à plusieurs installations clientes.

L'hébergement mutualisé de plusieurs sites sur un même serveur fait également l'objet d'une réflexion documentée. Les choix futurs devront tenir compte de l'isolation des données, des sauvegardes, de la maintenance et des besoins spécifiques de chaque client.