Retour aux projetsWeb dynamique
Éburnie Immobilier
Plateforme immobilière complète pour une agence à Abidjan : site vitrine (catalogue de biens, blog, estimation en ligne) couplé à un back-office CMS entièrement sur mesure permettant à l'agence de gérer son contenu sans intervention technique. Développé de bout en bout architecture, sécurité, tests automatisés.
Next.jsTypeScriptPostgreSQLPrismaTailwind CSSServer ActionsZodJWTCloudinarySEOCMSSécurité web

Contexte
Une agence immobilière basée à Abidjan avait besoin de bien plus qu'un site vitrine figé : gérer elle-même son catalogue de biens, ses articles, ses demandes de contact et d'estimation, sans dépendre d'un développeur à chaque mise à jour. Le secteur immobilier ivoirien souffre justement de ce problème récurrent annonces obsolètes, sites qu'on ne peut plus toucher après livraison, aucune trace des demandes clients. L'enjeu était de livrer une plateforme autonome : un site public performant et référencé, couplé à un back-office complet pensé pour un usage quotidien par une personne non technique.
Mon rôle
Développeur fullstack conception de l'architecture et du schéma de données, développement du site public et du back-office admin, sécurité, tests automatisés
Défis
Trois défis techniques concrets ont marqué le projet. Un bug d'empilement CSS sur le carrousel de la page d'accueil : les boutons avaient leur logique correcte, mais un conteneur invisible positionné après eux dans le DOM, sans z-index, interceptait silencieusement tous les clics corrigé en traquant l'ordre de rendu réel plutôt que la seule logique du composant.
Un piège avec Zod sur la validation des mises à jour partielles : réutiliser le schéma de création en le rendant "partiel" laissait les valeurs par défaut s'appliquer en silence à chaque modification, avec le risque de repasser un bien publié en brouillon en éditant un seul champ détecté grâce à la suite de tests de non-régression.
La sécurisation des données structurées (JSON-LD) contre l'injection, sans casser le JavaScript : deux caractères Unicode invisibles (séparateurs de ligne) sont valides en JSON mais cassent un script s'ils y figurent en clair. Il a fallu les construire par leur code numérique plutôt que les écrire directement dans le fichier source.
Stack technique
Next.js 16React 19TypeScriptTailwind CSS 4PostgreSQLPrisma 7 (driver adapters)ZodJWT (jose)bcryptCloudinaryServer Actions
Déploiement
Base PostgreSQL en conteneur Docker, prêt pour un déploiement Vercel ou VPS. Purge automatique des données via une route cron sécurisée par jeton secret, déclenchable par n'importe quel planificateur externe.
Résultats
59 commits retraçant le projet. 9 modèles de données, une douzaine de pages publiques, 7 modules de gestion dans l'admin. Suite de tests de bout en bout maison : plus de 300 vérifications automatisées réparties en 10 suites, exécutées avant chaque livraison. Build de production, typage et lint sans aucun avertissement. Passe de sécurité complète : en-têtes HTTP durcis (CSP, HSTS), isolation stricte du code serveur, protection anti-spam sur tous les formulaires publics, purge automatique des données personnelles après 13 mois.