Muhammad Arslan
M'engager
Retour aux projets

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.

Rôle : Contributing developer (team project, led by another engineer)Calendrier : 2025-2026Type : Cross-platform app + admin

Expo (React Native)

Next.js

Convex

OpenAI TTS

TanStack Table

Recharts

Tableau de bord administrateur ZED avec exemples de graphiques de croissance des utilisateurs, d'engagement et de langues

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

MobileExpo and React Native with Expo Router, Jotai, expo-audio, expo-notifications
AdministrationNext.js with React, TanStack Table, Recharts, Sonner, and a shadcn-style UI
BackendConvex for data, queries, mutations, storage, cron jobs, and a background work pool
MédiasOpenAI text-to-speech for narrated audio generation
Notificationspush delivery with a retry policy

Fonctionnalités Clés

Diffusion planifiée personnaliséela diffusion de chaque utilisateur arrive à son heure locale préférée, adaptée à son fuseau horaire.
Contenu multilinguediffusions en plusieurs langues, avec prise en charge intégrale de l'écriture de droite à gauche, la variante la plus adaptée étant choisie selon les préférences de l'utilisateur.
Narration générée automatiquementevery broadcast is turned into audio through text-to-speech, with word timings so the text highlights in sync as it plays.
Expérience de diffusion guidéel'écran mobile lit la narration audio, assure le surlignage synchronisé et permet aux utilisateurs de partager le texte.
Console d'administration des opérationstableaux de bord pour les utilisateurs, la diffusion, les consultations, les écoutes et l'avancement de la génération audio, accompagnés de rapports de croissance et de performance par langue.
Gestion des diffusions et du contenucréer et modifier les diffusions, relancer ou reprogrammer les tâches audio interrompues, et gérer les textes localisés de l'application ainsi que les liens des boutiques d'applications.
Gestion des utilisateurs et paramètresgérer les rôles et l'état actif, choisir le comportement de rappel simple ou multiple et envoyer des notifications de test.

Galerie

Vue d'ensemble de l'administration ZED avec statistiques synthétiques sur les utilisateurs, le contenu et la diffusion
Graphiques ZED d'engagement et de langues avec un échantillon d'activité de diffusion

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
Commencer votre brief de projet
Tous les projetsProjet suivantSchooliee
ZED (My Islamic Reminders) : Plateforme de diffusion multiplateforme | Muhammad Arslan