Projet personnel

VNTP Location

La gestion locative des bailleurs, LMNP compris, avec un espace pour les locataires.

Rôle
Fondateur, conception et développement full-stack, seul
Période
déc. 2025 – en cours · VNTP
Stack
  • PHP 8.5
  • Symfony 8
  • Doctrine ORM 3
  • PostgreSQL
  • Claude API
  • INSEE API
  • Stripe
  • Symfony Voters
  • Web Push
  • ClamAV
  • FrankenPHP
  • PHPUnit

Contexte

Gérer soi-même quelques appartements, c'est une suite de tâches répétitives et pleines de pièges : calculer la révision de loyer, envoyer les quittances, ventiler les charges de copropriété, préparer la déclaration LMNP. Je l'ai d'abord construite pour moi, puis ouverte à d'autres propriétaires.

Fonctionnalités

  • Biens, baux et locataires ; loyers, paiements et quittances envoyées par e-mail.
  • Révision annuelle du loyer : l'indice de référence des loyers (IRL) est récupéré automatiquement depuis l'API ouverte de l'INSEE, la nouvelle valeur calculée et proposée au propriétaire.
  • Appels de fonds de copropriété lus par IA : le propriétaire dépose le PDF, même scanné. L'API Claude en extrait chaque ligne (provisions, charges spéciales, fonds de travaux, travaux votés, régularisation) dans un JSON contraint par un schéma, que le propriétaire vérifie avant l'import.
  • Dépenses et bilan fiscal LMNP, avec export pour la déclaration.
  • Espace locataire : documents partagés, quittances, notifications Web Push.
  • Abonnement Stripe par logement, avec période d'essai.

Architecture et sécurité

  • Partage du socle technique de VNTP Facturation : Symfony 8, PHP 8.5, FrankenPHP, Messenger.
  • Trois rôles (locataire, propriétaire, administrateur) : chaque accès passe par des Voters Symfony et un contexte propriétaire. Un propriétaire ne voit jamais que ses propres biens, et c'est couvert par des tests.
  • Documents stockés hors de la racine web, analysés par antivirus au dépôt, servis uniquement après contrôle d'accès.
  • Lecture IA désactivable : sans clé configurée, la saisie reste manuelle et rien ne part vers un service tiers.

Défis techniques

  • Fiabiliser une extraction par LLM sur des documents hétérogènes (chaque syndic a sa mise en page) : une consigne métier précise (ne jamais prendre le budget de l'immeuble ni les tantièmes, distinguer le solde antérieur de l'appel de la période), une sortie contrainte par schéma, et la relecture humaine avant tout enregistrement.
  • Les règles de calcul de la révision IRL et des régularisations, testées avec une horloge figée.

← Retour au portfolio