[{"data":1,"prerenderedAt":133},["ShallowReactive",2],{"project:homies":3},{"id":4,"title":5,"body":6,"client":97,"date":98,"description":89,"extension":99,"gallery":100,"image":101,"impact":102,"meta":114,"navigation":115,"path":116,"preview":117,"seo":118,"stem":119,"tech":120,"type":130,"url":131,"__hash__":132},"portfolio/portfolio/homies.md","Homies — App de colocation",{"type":7,"value":8,"toc":88},"minimark",[9,14,18,24,28,32,35,39,46,50,52,56,78,80,84],[10,11,13],"h2",{"id":12},"le-problème","Le problème",[15,16,17],"p",{},"La colocation génère des frictions quotidiennes : dépenses non tracées, tâches qui s'accumulent, décisions prises sans consensus. Les solutions existantes sont soit trop basiques, soit éclatées entre plusieurs applications.",[15,19,20],{},[21,22,23],"strong",{},"Homies centralise tout en une seule expérience fluide.",[10,25,27],{"id":26},"ce-que-lapplication-résout","Ce que l'application résout",[29,30],"check-list",{":items":31},"[\"**Finances partagées** — Division des dépenses, suivi des dettes en temps réel, remboursements partiels et confirmations de paiement\",\"**Organisation collective** — Courses, tâches ménagères, planning des repas avec responsabilités assignées\",\"**Communication intégrée** — Conversations en temps réel, sondages instantanés pour les décisions collectives, notifications push\",\"**Sécurité enterprise-grade** — Authentification 2FA, gestion des sessions multi-appareils, chiffrement des tokens\",\"**Multi-plateforme** — iOS, Android et Web dans une seule codebase, interface bilingue FR / EN\"]",[33,34],"hr",{},[10,36,38],{"id":37},"architecture-technique","Architecture technique",[15,40,41,42,45],{},"Le projet repose sur une ",[21,43,44],{},"architecture microservices"," déployée sur un monorepo Nx, conçue pour la scalabilité et la résilience.",[47,48],"steps",{":steps":49},"[{\"title\":\"6 services indépendants\",\"text\":\"Gateway, authentification, blog, colocation, WebSocket et notifications — chacun avec sa propre base de données et son périmètre métier strict.\"},{\"title\":\"Domain-Driven Design\",\"text\":\"Séparation stricte des responsabilités pour les domaines métier complexes. Le code suit le langage du domaine, pas l'inverse.\"},{\"title\":\"Communication asynchrone\",\"text\":\"RabbitMQ orchestre les événements entre services. Les notifications temps réel transitent sans couplage fort.\"},{\"title\":\"CI/CD complet\",\"text\":\"GitHub Actions, déploiement automatisé sur VPS via Docker, migrations de base de données sans interruption de service.\"}]",[33,51],{},[10,53,55],{"id":54},"résultats-métriques","Résultats & métriques",[57,58,59,66,72,75],"ul",{},[60,61,62,65],"li",{},[21,63,64],{},"700+ tests unitaires"," couvrant les cas métier critiques — chaque service est testé en isolation",[60,67,68,71],{},[21,69,70],{},"Zero downtime"," sur les déploiements en production grâce aux migrations versionnées",[60,73,74],{},"Architecture extensible : ajout d'un nouveau service sans modifier les existants",[60,76,77],{},"Codebase partagée entre mobile (React Native) et web via le monorepo Nx",[33,79],{},[10,81,83],{"id":82},"stack-technique","Stack technique",[85,86],"tech-pills",{":tech":87},"[\"NestJS\",\"TypeScript\",\"React Native\",\"PostgreSQL\",\"MongoDB\",\"Prisma\",\"RabbitMQ\",\"Socket.io\",\"Docker\",\"Nx\",\"GitHub Actions\"]",{"title":89,"searchDepth":90,"depth":90,"links":91},"",2,[92,93,94,95,96],{"id":12,"depth":90,"text":13},{"id":26,"depth":90,"text":27},{"id":37,"depth":90,"text":38},{"id":54,"depth":90,"text":55},{"id":82,"depth":90,"text":83},"Projet personnel","2025","md",null,"/portfolio/homies_logo_black.svg",[103,106,109,112],{"label":104,"value":105},"Microservices","6",{"label":107,"value":108},"Tests unitaires","700+",{"label":110,"value":111},"Plateformes","iOS · Android · Web",{"label":113,"value":70},"Déploiement",{},true,"/portfolio/homies","Application mobile full-stack qui réinvente la vie en colocation : finances partagées, organisation collective et communication en temps réel.",{"title":5,"description":89},"portfolio/homies",[121,122,123,124,125,126,127,128,129],"NestJS","TypeScript","React Native","PostgreSQL","MongoDB","RabbitMQ","Socket.io","Docker","Nx","perso","https://homiesapp.fr","CI1_TJPZ0yTHcCGyXMvIRIZSe1W3rkTyJVVfBoecs_0",1775653020583]