Muhammad Arslan
Contrátame
Volver a proyectos

ZED (My Islamic Reminders)

Una aplicación móvil junto con una consola web de administración que entrega difusiones islámicas multilingües según el horario personalizado de cada usuario, con audio narrado generado automáticamente y analíticas completas de entrega.

Rol: Contributing developer (team project, led by another engineer)Cronograma: 2025-2026Tipo: Cross-platform app + admin

Expo (React Native)

Next.js

Convex

OpenAI TTS

TanStack Table

Recharts

Panel de administración de ZED con gráficos de ejemplo sobre crecimiento de usuarios, interacción e idiomas

Descripción general

ZED es una plataforma de difusión espiritual desarrollada como un monorrepositorio con tres partes que comparten un mismo backend: una aplicación móvil en Expo para los usuarios finales, un panel de administración en Next.js para quienes gestionan la plataforma y un backend en Convex que almacena los datos y se encarga de la programación, las notificaciones, las analíticas y la generación de audio. El producto envía a los usuarios breves difusiones islámicas a su hora local preferida, en el idioma seleccionado, y convierte automáticamente cada una en audio narrado con resaltado palabra por palabra durante la reproducción.

El problema

La parte compleja de este producto no es mostrar contenido, sino la orquestación. Los usuarios quieren recibir las difusiones a una hora específica en su propia zona horaria, en uno de varios idiomas, incluyendo escrituras de derecha a izquierda. Cada difusión debe poder consumirse como texto, como audio o como contenido para compartir. Los administradores necesitan ver qué está ocurriendo realmente: qué se ha entregado, visto y reproducido, y si la generación de audio avanza al ritmo necesario. Y cuando alguien no recibe o se pierde un contenido, el sistema debe hacer un seguimiento por sí mismo. El verdadero trabajo radica en integrar la entrega programada, la selección de idiomas, la generación de audio, las notificaciones push y las analíticas en un único sistema coherente.

Mi rol y enfoque

Este fue un proyecto en equipo liderado principalmente por otro ingeniero, en el que participé como uno de los desarrolladores. Mi intervención fue puntual y no principal, dentro de una arquitectura construida en torno a Convex como fuente única de verdad compartida tanto por la aplicación móvil como por el panel de administración. El principio de diseño en toda la base de código es que el backend asume la orquestación, incluidos la programación, los reintentos, los trabajos de audio y las analíticas, mientras que los dos front-ends se mantienen ligeros y leen de la misma API generada.

Stack tecnológico

MóvilExpo and React Native with Expo Router, Jotai, expo-audio, expo-notifications
AdministraciónNext.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
MultimediaOpenAI text-to-speech for narrated audio generation
Notificacionespush delivery with a retry policy

Características clave

Entrega programada personalizadala difusión de cada usuario llega a su hora local preferida, ajustada a su zona horaria.
Contenido multilingüedifusiones en varios idiomas, con compatibilidad completa de derecha a izquierda, seleccionando la variante más adecuada según las preferencias del usuario.
Narración generada automáticamenteevery broadcast is turned into audio through text-to-speech, with word timings so the text highlights in sync as it plays.
Experiencia de difusión guiadala pantalla móvil reproduce el audio narrado, resalta el texto de forma sincronizada y permite a los usuarios compartirlo.
Consola de operaciones de administraciónpaneles para usuarios, entregas, visualizaciones, reproducciones y progreso de generación de audio, además de informes sobre crecimiento y rendimiento por idioma.
Gestión de difusiones y contenidocree y edite difusiones, regenere o reintente tareas de audio detenidas, y gestione los textos localizados de la aplicación y los enlaces a las tiendas.
Gestión de usuarios y configuracióngestione roles y estados activos, configure recordatorios individuales o múltiples, y envíe notificaciones de prueba.

Galería

Vista general de administración de ZED con estadísticas sintéticas de usuarios, contenido y entrega
Gráficos de interacción e idiomas de ZED con actividad de difusión de ejemplo

Desafíos y soluciones

La entrega de notificaciones constituye el núcleo de mayor exigencia técnica del producto. Dado que las difusiones se envían por usuario, por zona horaria y según un cronograma, el backend gestiona los envíos mediante tareas cron de Convex y un grupo de trabajo en segundo plano en lugar de activadores puntuales, registrando marcadores de reintento según la actividad de cada usuario para hacer un seguimiento automático del contenido no recibido.

La generación de audio es la otra pieza móvil que debe mantenerse fiable. Convertir texto en audio narrado es un proceso lento y susceptible de fallos, por lo que cada fragmento de contenido localizado monitoriza su propio estado de generación y recuento de reintentos, permitiendo a los administradores ver el progreso y reiniciar tareas estancadas desde el panel. El seguimiento de interacción, que registra eventos de entrega, visualización y reproducción con marcas de tiempo, está integrado directamente en el modelo de datos, lo que permite generar informes directamente desde el mismo almacén sin necesidad de un flujo de analíticas independiente.

Resultado

ZED es un sistema multiplataforma completo en el que un único backend en Convex impulsa tanto una aplicación móvil de consumo como un panel de operaciones. Programa difusiones personalizadas, multilingües y con narración automática, e informa sobre cada paso de su entrega. Es un claro ejemplo de ingeniería de producto con alta exigencia de orquestación, donde el backend realiza el trabajo complejo de programación y gestión multimedia para que las aplicaciones se mantengan sencillas.

¿Tienes un problema de producto similar?

Comparte el producto actual, el resultado que necesitas y las limitaciones que ya existen en el camino. Usaré eso para definir un primer hito razonable.

Contratar un desarrollador full stack
Inicia el brief de tu proyecto
Todos los proyectosSiguiente proyectoSchooliee
ZED (My Islamic Reminders): Plataforma de difusión multiplataforma | Muhammad Arslan