ZED (My Islamic Reminders)
Une application mobile doublée d'une console d'administration web qui transmet des diffusions islamiques multilingues selon le planning personnel de chaque utilisateur, avec narration audio générée automatiquement et analyses complètes de diffusion.
Expo (React Native)
Next.js
Convex
OpenAI TTS
TanStack Table
Recharts

Aperçu
ZED est une plateforme de diffusion spirituelle conçue sous forme de monorepo composé de trois parties partageant un même backend : une application mobile Expo pour les utilisateurs finaux, un tableau de bord d'administration Next.js pour les gestionnaires, et un backend Convex qui conserve les données et prend en charge la planification, les notifications, les analyses et la génération audio. Le produit transmet aux utilisateurs de courts rappels islamiques à l'heure locale de leur choix, dans la langue sélectionnée, et transforme automatiquement chacun d'eux en narration audio avec surlignage mot à mot lors de la lecture.
Le Problème
La difficulté de ce produit ne réside pas dans l'affichage du contenu, mais dans son orchestration. Les utilisateurs souhaitent recevoir les diffusions à une heure précise selon leur fuseau horaire, dans l'une des différentes langues proposées, y compris avec des écritures de droite à gauche. Chaque diffusion doit pouvoir être consultée sous forme de texte, d'audio ou de contenu partageable. Les administrateurs doivent suivre ce qui se passe réellement : ce qui a été livré, consulté et écouté, et vérifier si la génération audio suit le rythme. Et lorsqu'un utilisateur manque un contenu, le système doit effectuer un suivi automatique. Le véritable défi consiste à réunir livraison planifiée, sélection de la langue, génération audio, notifications push et analyses au sein d'un système cohérent.
Mon Rôle et Mon Approche
Il s'agissait d'un projet d'équipe dirigé principalement par un autre ingénieur, sur lequel je suis intervenu en tant que développeur contributeur. Mon implication s'est concentrée sur des périmètres précis, au sein d'une architecture structurée autour de Convex comme source unique de vérité partagée par l'application mobile et le tableau de bord d'administration. Le principe de conception de l'ensemble du code source est que le backend assure l'orchestration — y compris la planification, les nouvelles tentatives, les traitements audio et les analyses —, tandis que les deux front-ends restent légers et exploitent la même API générée.
Stack Technique
Fonctionnalités Clés
Galerie


Défis et Solutions
La diffusion des notifications constitue le cœur techniquement exigeant du produit. Les diffusions étant envoyées par utilisateur, selon son fuseau horaire et un planning précis, le backend prend en charge la distribution via des tâches cron Convex et une file de traitement en arrière-plan plutôt que par des déclencheurs ad hoc, avec un suivi des nouvelles tentatives lié à l'activité de chaque utilisateur pour relancer automatiquement les contenus manqués.
La génération audio constitue l'autre élément dynamique qui doit rester fiable. Transformer du texte en narration audio est un processus lent qui peut échouer ; chaque élément de contenu localisé suit donc son propre statut de génération et son nombre de tentatives, et les administrateurs peuvent observer la progression et relancer les tâches bloquées depuis le tableau de bord. Le suivi de l'engagement — enregistrant les événements de livraison, de consultation et d'écoute avec horodatage — est intégré directement dans le modèle de données, ce qui permet de générer les rapports sans passer par un pipeline d'analyse distinct.
Résultat
ZED est un système multiplateforme complet au sein duquel un backend Convex unique pilote à la fois une application mobile grand public et un tableau de bord opérationnel. Il planifie des diffusions personnalisées, multilingues et narrées automatiquement, tout en assurant le suivi de chaque étape de leur distribution. C'est une excellente démonstration d'ingénierie produit axée sur l'orchestration, où le backend prend en charge les exigences complexes de planification et de médias pour préserver la simplicité des applications.
Vous avez un problème de produit similaire ?
Partagez le produit actuel, le résultat dont vous avez besoin et les contraintes qui font déjà obstacle. J'utiliserai cela pour définir un premier jalon raisonnable.
Engager un développeur full stack