Lancement d'une plateforme civique « Visionnaire » : conception, pile et philosophie

« Si nous pouvons signaler les nids-de-poule dans la rue, nous pouvons aussi améliorer la manière dont nous les signalons. »

Bonjour, je développe une plateforme open source pour aider les villes à gérer plus efficacement les signalements des citoyens, les demandes de service et les problèmes locaux.

Ceci est le premier article d'une série décrivant son développement, son importance et comment d'autres peuvent y contribuer ou la déployer dans leurs propres municipalités.

🌐 Essayez la première démo: https://salega.tech/demo


🚧 Le problème : les gouvernements locaux ont besoin de meilleurs outils

La plupart des petites et moyennes villes s'appuient encore sur :

  • Des formulaires papier
  • Des boîtes mail génériques
  • Des réclamations téléphoniques sans traçabilité

Cela entraîne des réponses lentes, des demandes perdues et une absence de visibilité pour les citoyens et les fonctionnaires. De plus, les logiciels d'assistance commerciaux sont souvent trop chers ou inadaptés aux services publics locaux.


🎯 Les objectifs : Simplicité, Modularité, Accessibilité

Mes objectifs pour ce projet sont :

  • Simple pour les citoyens (en particulier les utilisateurs âgés)
  • 🧩 Modulaire et adaptable par chaque commune
  • 🧑‍💼 Utile pour les maires, les secrétaires et les techniciens
  • 🌍 Accessible, avec prise en charge de plusieurs langues
  • ⚙️ Gratuit et open source (MIT ou double licence pour le bien public)

🧪 La pile

Cette pile a été choisie pour sa stabilité, son ouverture et sa convivialité pour les développeurs :

  • 💻 Frontend: Angular 17 + Tailwind
  • 🧠 Backend: .NET 8
  • 🗺️ Maps: OpenStreetMap + Leaflet
  • 🧭 Geolocation: Nominatim (open-source geocoder)
  • 🔐 Authentication: OpenIddict (JWT + jetons d'actualisation)
  • 🗃️ Base de données: PostgreSQL
  • 🐳 DevOps: Docker-premier, prêt pour l'auto-hébergement ou K3s

🧼 Clean Architecture: un monolithe modulaire

Le backend suit une Clean Architecture, qui sépare les préoccupations en couches distinctes :

  • /src
  • /Domain - 🧠 Règles métier, entités (pas de dépendances technologiques)
  • /Application - 🎯 Cas d'utilisation (SubmitReport, AssignTask, etc.)
  • /Infrastructure - 🔌EF Core, stockage Blob, géolocalisation, e-mail
  • /API - 📡Contrôleurs, points de terminaison HTTP

Cela permet à chaque fonctionnalité (par exemple, « Rapports citoyens ») d'être développée et testée indépendamment, tout en conservant un backend déployable unique.


📦 Portée du MVP

Les fonctionnalités initiales que je construis :

  • 📝 Soumettre un rapport (avec photo, carte, catégorie)
  • 🧭 Détection automatique de zone à partir du GPS
  • 👷 Attribuer à l'employé en fonction de la catégorie
  • 📲 Interface d'assistance pour la gestion des rapports
  • 🔍 Tableau de bord d'administration avec analyses

🔜 Et ensuite ?

Je travaille actuellement sur :

  • 🏗️ Modèles de domaine, catégories et téléchargements de fichiers
  • 📡 Points de terminaison d'API de base pour la création de rapports et la récupération
  • 🧪 Tests unitaires et d'intégration

🤝 Comment s'impliquer?

For now, you can:

  • ✅ Essayez la démo : https://salega.tech/demo
  • 🔔 Suivez-nous pour les mises à jour (plus de code + dépôt à venir)
  • 💬 Contactez-moi si vous travaillez dans une commune et souhaitez le tester

Bientôt, je publierai:

  • 🛠️ Configuration de Docker pour un déploiement facile
  • 💻 Ouvrir le dépôt GitHub avec le guide de contribution
  • 🇵🇱🇫🇷 Interface utilisateur localisée (à partir du polonais + français)

📜 License

Ce projet sera open source sous MIT ou double licence pour une utilisation dans le secteur public, permettant à n'importe quelle ville ou développeur de le personnaliser librement.

Ensemble, nous pouvons rendre les villes plus réactives, transparentes et connectées.

Merci de votre lecture - à bientôt !

✍️ Suivez-nous : « À suivre : Architecture propre dans .NET 8 »