Wesh Maklti
Application bilingue de planification de repas — plans personnalisés, objectifs caloriques et abonnements, avec client mobile et tableau de bord d'administration.
- Mon rôle
- Développeur Full Stack
- Période
- févr. 2024 — août 2026
- Statut
- Livré

Wesh Maklti est un service de planification de repas destiné à un public arabophone et francophone : chaque abonné reçoit des plans de repas et des objectifs caloriques adaptés à son profil, l'accès étant réparti entre deux formules d'abonnement, Balanced et Premium. Le produit couvre une application web, une application mobile et un back-office pour exploiter le service.
L'ensemble repose sur un backend unique Express + TypeORM qui sert toutes les surfaces — le client mobile React Native (Expo) comme le front web — tandis que le tableau de bord d'administration est construit sur des composants shadcn. Le service tourne en production depuis début 2024 et a connu une migration complète vers un nouveau serveur DigitalOcean avec pipeline CI/CD.
Le problème à résoudre
La vraie difficulté tenait à la durée plus qu'à une fonctionnalité isolée : maintenir un produit bilingue cohérent en arabe et en français, sur web et mobile, tout en l'exploitant en production sans interruption depuis début 2024. Aucun chantier d'infrastructure ne partait d'une page blanche — la migration complète de serveur et la mise en place de la CI/CD ont dû se faire sur un service en production, pas dans un bac à sable.
Comment cela a été construit
Un backend unique Express + TypeORM expose une seule API à tous les clients : l'application mobile React Native construite avec Expo, le front web, et un tableau de bord d'administration basé sur shadcn pour exploiter le service. L'accès par abonnement est découpé en deux formules, Balanced et Premium, qui déterminent ce que chaque compte peut utiliser.
Côté exploitation, le déploiement a été migré intégralement vers une nouvelle machine DigitalOcean et placé derrière un pipeline CI/CD, et l'application est en production depuis début 2024, sans réécriture.
Ce que ça fait
Plans de repas personnalisés
Chaque utilisateur reçoit des plans de repas et des objectifs caloriques adaptés à son profil, aussi bien sur le web que sur mobile.
Bilingue arabe/français
Le produit est bilingue de bout en bout : l'arabe et le français y sont traités au même niveau.
Formules Balanced et Premium
L'accès par abonnement est découpé en deux formules qui déterminent ce que chaque compte peut utiliser.
Tableau de bord shadcn
Un back-office construit sur des composants shadcn pour l'exploitation quotidienne du service.
Client mobile Expo
Une application React Native construite avec Expo, qui consomme la même API Express que le front web.
Déploiements CI/CD
Les déploiements passent par un pipeline CI/CD vers un serveur DigitalOcean — une infrastructure qui a traversé une migration complète de machine avec le service en production.
Construit avec
Frontend
Les entités à décorateurs de TypeORM sont pensées pour TypeScript, et partager un même langage typé entre l'API et le client React Native fiabilise les contrats de requêtes et de réponses.
Mobile
React Native permet de livrer le client mobile depuis une seule base de code JavaScript branchée sur la même API Express, plutôt que d'entretenir des applications natives distinctes à côté du front web.
Expo prend en charge la chaîne de build et de publication React Native, ce qui permet de faire évoluer l'application mobile sans projets natifs entretenus à la main.
Backend
Express maintient le backend comme une fine couche HTTP Node au-dessus de TypeORM — une seule API REST consommée à la fois par le front web et par le client mobile Expo.
Données
Utilisateurs, plans de repas et formules d'abonnement sont des données relationnelles ; Postgres apporte l'intégrité transactionnelle et les contraintes sur lesquelles s'appuie le modèle d'entités de TypeORM.