Projet personnel · étude de cas

PipeImmo : un SaaS conçu, construit et exploité seul. Puis arrêté proprement.

Un CRM pipeline pour agents immobiliers, du premier commit à la production en bêta ouverte : conception produit, architecture, paiements, conformité, exploitation. Arrêté volontairement, car un projet personnel n'a pas vocation à financer une infrastructure de production indéfiniment.

Back
.NET 10 · C#
Front
Angular 22 · PWA
Données
PostgreSQL 17
Infra
Docker · OVHcloud
Services
Stripe · SignalR
pipeline · vue kanbanschéma de l'interface

Tout ce qu'un agent fait au quotidien, sans rien oublier.

Pipeline kanbanGlisser-déposer par étape, badges d'inactivité.
Relances automatiquesRègles par étape, par exemple 7 jours sans activité.
Notes vocales transcritesDictées après la visite, transcrites automatiquement.
Prix marché DVFDonnées de ventes réelles intégrées.
Portail client et chatLien sécurisé, alertes d'engagement.
E-signature intégréeBons de visite et mandats signés dans l'app.
Matching acheteur / vendeurCorrespondances calculées automatiquement.
Home staging par IARetouche photo en plusieurs styles.
PWA mobile-firstInstallable, hors-ligne, notifications natives.

La stack la plus récente, des patterns éprouvés.

Clean Architecture et CQRS avec MediatR. Commandes en EF Core, lectures en Dapper. Un domaine riche sans aucune dépendance. Tests unitaires et d'intégration avec Testcontainers.

Deux flux, de bout en bout.

Zoom 1 · créer un deal

POST /api/deals → 201
  1. 1Façade Angular, sans HttpClient exposé
  2. 2Endpoint Minimal API, délègue à MediatR
  3. 3Pipeline de validation FluentValidation
  4. 4Handler et domaine : Deal.Create()
  5. 5201 Created, signal front mis à jour

Zoom 2 · de l'inactivité à la relance, sans rien perdre

outbox transactionnel · au moins une fois
  1. 1Service horaire : détecte les deals inactifs
  2. 2Point de sortie unique INotificationDispatcher
  3. 3In-app via SignalR, push via WebPush
  4. 4Email écrit en base, dans la même transaction
  5. 5OutboxProcessorService, toutes les 10 s

Sans outbox, une interruption du serveur perd les relances. Avec, la livraison est garantie au moins une fois.

Ce que ce projet démontre.

Conception produit

Un segment réel, un problème identifié, des arbitrages assumés.

Architecture réelle

Clean Architecture, CQRS et outbox appliqués en production.

Exploitation complète

Monitoring, sauvegardes, durcissement, RGPD, paiements, support.

Arrêt assumé

Export des données, communication, décommissionnement.

Envie de voir le produit ?

L'application tourne en environnement de démo. Démo guidée sur demande, code et décisions à l'appui.

Demander une démo