🏢 Plateforme SaaS de gestion immobilière
📋 Contexte du projet
Millennium Digital Agency gérait ses biens immobiliers avec des outils disparates (Excel, emails, logiciels obsolètes), causant des erreurs et une perte de temps considérable. L'objectif était de créer une plateforme unifiée moderne.
🎯 Objectifs et défis
- Centraliser la gestion de 500+ biens immobiliers
- Automatiser les processus de location et facturation
- Intégrer avec les systèmes existants (CRM, comptabilité)
- Assurer une migration sans perte de données
- Garantir une disponibilité 99.9% en production
💻 Architecture technique
Stack technologique
- Frontend : React 18, Redux Toolkit, Material-UI, TypeScript
- Backend : Node.js, Express, GraphQL avec Apollo Server
- Base de données : MongoDB pour les données flexibles, PostgreSQL pour les transactions
- Infrastructure : Docker, Kubernetes, AWS (EC2, S3, RDS)
- CI/CD : GitLab CI, SonarQube, tests automatisés avec Jest
Choix architecturaux
J'ai opté pour une architecture microservices pour permettre une évolutivité indépendante des modules. GraphQL a été choisi pour optimiser les requêtes frontend et réduire l'over-fetching.
🚀 Ma contribution
Architecture et design système
J'ai conçu l'architecture globale en suivant les principes de Clean Architecture. Création des diagrammes UML, définition des API contracts, et mise en place de la stratégie de tests (unitaires, intégration, E2E).
Développement des fonctionnalités critiques
Implémentation du moteur de calcul des loyers avec gestion des cas complexes (prorata, charges, indexations). Développement du système de notifications temps réel avec WebSocket pour les alertes importantes.
Performance et optimisation
Optimisation des requêtes MongoDB avec indexation stratégique, réduction du temps de chargement. Mise en place du cache Redis pour les données fréquemment consultées.
📊 Résultats
- ✅ Amélioration du temps de gestion administrative
- ✅ Amélioration de l'user Experience
- ✅ Amélioration de Performance
🔍 Apprentissages clés
Ce projet m'a permis de maîtriser la gestion de projets complexes en autonomie, l'importance de l'architecture évolutive, et la valeur d'une communication proactive avec les stakeholders. J'ai aussi approfondi mes compétences en optimisation de performance et en design de systèmes distribués.