Aller au contenu
Luminisys

Accueil › À propos

À propos

Un projet personnel, construit avec exigence

Luminisys est conçu et développé bénévolement pour les paroisses. J'y applique ce qui guide mon métier : partir du besoin réel, faire des choix durables et rester responsable du service jusqu'en production.

Sébastien Leserre

Concepteur et responsable de Luminisys.

Les origines

L'histoire du projet

Tout est parti d'une question toute simple, posée par un curé à un paroissien développeur.

  1. Le point de départ

    « Pourrait-on projeter les chants ? »

    Don Henri, alors curé des paroisses du pays de Fayence, avait engagé une démarche de transformation pastorale. Dans ce cadre, il m'a demandé s'il serait possible de projeter les chants pendant la messe, pour que l'assemblée chante d'une seule voix sans chercher les paroles.

    Je connaissais le piège : compiler chaque semaine tous les chants dans des fichiers PowerPoint est une corvée qui finit toujours par être abandonnée. Plutôt que de bricoler une solution fragile, je lui ai demandé trois ou quatre mois pour construire un véritable outil.

  2. Trois mois plus tard

    L'application Windows

    La première version était testée en conditions réelles, pendant une messe, et l'accueil a été immédiat et très chaleureux : les paroissiens levaient les yeux vers l'écran et chantaient. Au début, les équipes d'animation m'envoyaient le déroulé de leurs messes et je remplissais moi-même, semaine après semaine, la base de données du poste.

  3. Quelques mois plus tard

    La version web

    Le succès a vite fait apparaître une limite : tout passait par moi. J'ai donc mis un site web à la disposition des animateurs pour qu'ils préparent leurs célébrations en toute autonomie, depuis chez eux, à leur rythme.

  4. L'étape suivante

    La migration vers C# / .NET

    L'application Windows avait été développée en WinDev, et le site en WebDev. Avant d'aller plus loin, j'ai fait le choix de migrer l'ensemble vers C# / .NET, une plateforme plus ouverte et plus pérenne. Cette refonte a permis de réunir les règles métier dans un cœur commun au site et à l'application, qui produisent désormais exactement le même résultat. C'est sur cette base que la synchronisation automatique a pu être construite.

  5. Après de nombreux mois de clé USB

    La synchronisation par API REST

    Restait un dernier maillon : chaque dimanche, juste avant la messe, mon binôme ou moi récupérions le fichier de la célébration sur le serveur pour l'intégrer au poste avec une clé USB. Une clé oubliée, et la célébration pouvait se retrouver sans chants. J'ai alors rendu ce transfert automatique, sécurisé et redondant.

  6. En préparation

    Une version Android

    Sur une tablette, les chanteurs retrouveront tous les chants de la célébration sur une seule page, sans apporter chaque semaine une pile de feuilles.

    Dans les églises où il n'est pas possible de projeter les chants, les paroissiens pourront les afficher sur leur téléphone en scannant un QR code.

Pour les curieux de technique

Les choix d'architecture

Un site web et un logiciel Windows qui doivent produire exactement le même résultat : toute l'architecture découle de cette contrainte.

Un cœur métier partagé

Les règles métier sont écrites une seule fois, dans une bibliothèque .NET commune.

En savoir plus

Suppressions, fusions, doublons, format d'échange, génération des PDF : le site et l'application Windows n'en sont que des adaptateurs. L'un gère les droits et plusieurs paroisses, l'autre une paroisse unique sur un poste. Une règle ne se duplique jamais dans une interface.

Application Windows

WPF en MVVM, base locale SQLite, mode présentation piloté par télécommande.

En savoir plus

Injection de dépendances, affichage des PDF par WebView2. Le mode présentation repose sur une machine d'état pilotée par les touches d'une télécommande (appuis courts, doubles, longs).

Site web

Blazor Server et Radzen, base MariaDB accédée par Dapper.

En savoir plus

Gestion multi-paroisses et multi-utilisateurs, authentification à deux facteurs.

Synchronisation hors ligne

Les postes Windows se synchronisent avec le site par une API REST, avec un secours par mail.

En savoir plus

Pages de changements avec curseur, versions de base pour détecter les conflits, fichiers comparés par empreinte SHA-256. Une modification faite des deux côtés n'écrase jamais rien : elle devient un conflit à arbitrer. Si l'API ne répond plus, un module asynchrone de secours par mail prend le relais ; seuls les messages signés avec la clé de l'église sont importés.

Sécurité

Authentification à deux facteurs, secrets chiffrés, échanges signés.

En savoir plus

Mots de passe hachés (PBKDF2) et double authentification par code à usage unique sur le site. HTTPS imposé (HSTS) et débit limité par adresse IP sur l'API. Sur le poste Windows, les secrets de synchronisation sont chiffrés par DPAPI ; les messages de secours sont signés (HMAC-SHA256) et les installateurs signés (ECDSA).

Mises à jour sûres

Installateurs signés et retour arrière automatique en cas d'échec.

En savoir plus

Les installateurs sont signés par un outil dédié. Un programme de mise à jour séparé sauvegarde la version en place, installe, vérifie le démarrage et revient en arrière si besoin. Un canal bêta permet de tester avant la diffusion générale.

Qualité

Chaque projet a son projet de tests unitaires miroir (xUnit, Moq).

En savoir plus

Les repositories SQLite sont testés sur une base temporaire réelle, le programme de mise à jour sur des dossiers temporaires.

Hébergement

Auto-hébergé sur un cluster Proxmox.

En savoir plus

Une machine virtuelle pour IIS, une pour la base de données et une pour le pare-feu.

  • C#
  • .NET 10
  • WPF
  • MVVM
  • Blazor
  • Radzen
  • API REST
  • Dapper
  • SQLite
  • MariaDB
  • QuestPDF
  • WebView2
  • MailKit
  • xUnit
  • Moq
  • IIS
  • Proxmox
Une question, une idée, un bug ? Les retours des paroisses font avancer Luminisys. Écrivez-moi à contact@luminisys.fr.
Luminisys vous est utile ? Découvrez comment soutenir le projet.