Muhammad Arslan
Assumimi
Torna ai progetti

ZED (My Islamic Reminders)

Un'app mobile e una console web di amministrazione che trasmette contenuti islamici multilingue secondo la programmazione personale di ciascun utente, con audio narrato generato automaticamente e analisi complete sulla consegna.

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

Expo (React Native)

Next.js

Convex

OpenAI TTS

TanStack Table

Recharts

Dashboard di amministrazione ZED con grafici di esempio su crescita utenti, engagement e lingue

Panoramica

ZED è una piattaforma di trasmissione spirituale realizzata come monorepo in tre parti che condividono un unico backend: un'app mobile Expo per gli utenti finali, una dashboard di amministrazione Next.js per chi gestisce il servizio e un backend Convex che conserva i dati e gestisce programmazione, notifiche, analisi e generazione dell'audio. Il prodotto invia agli utenti brevi trasmissioni islamiche all'orario locale preferito, nella lingua scelta, e trasforma automaticamente ciascuna trasmissione in audio narrato con evidenziazione parola per parola durante la riproduzione.

Il problema

La parte difficile di questo prodotto non è mostrare i contenuti. È l'orchestrazione. Gli utenti vogliono ricevere le trasmissioni a un orario specifico nel proprio fuso orario, in una tra diverse lingue, compresi i testi da destra a sinistra. Ogni trasmissione deve poter essere fruita come testo, audio o come contenuto condivisibile. Gli amministratori devono poter vedere cosa sta realmente accadendo: cosa è stato consegnato, visualizzato e riprodotto, e se la generazione dell'audio tiene il passo. E quando qualcuno perde un contenuto, il sistema deve effettuare il follow-up in autonomia. Il vero lavoro consiste nel riunire recapito programmato, selezione della lingua, generazione dell'audio, notifiche push e analisi in un unico sistema coerente.

Il mio ruolo e approccio

Questo è stato un progetto di team guidato principalmente da un altro ingegnere, a cui ho contribuito come uno degli sviluppatori. Il mio ruolo è stato mirato anziché primario, all'interno di un'architettura basata su Convex come unica fonte di verità condivisa sia dall'app mobile sia dalla dashboard di amministrazione. Il principio progettuale dell'intero codebase prevede che il backend gestisca l'orchestrazione, inclusi pianificazione, tentativi di retry, elaborazioni audio e analisi, mentre i due front end rimangono snelli e leggono dalla medesima API generata.

Stack tecnologico

MobileExpo and React Native with Expo Router, Jotai, expo-audio, expo-notifications
AmministrazioneNext.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
MediaOpenAI text-to-speech for narrated audio generation
Notifichepush delivery with a retry policy

Funzionalità chiave

Recapito programmato personalizzatola trasmissione di ogni utente arriva all'orario locale preferito, allineato al suo fuso orario.
Contenuti multilinguetrasmissioni in diverse lingue, compreso il supporto completo per i testi da destra a sinistra, con la selezione della variante migliore in base alle preferenze dell'utente.
Narrazione generata automaticamenteevery broadcast is turned into audio through text-to-speech, with word timings so the text highlights in sync as it plays.
Esperienza di trasmissione guidatalo schermo mobile riproduce l'audio narrato, evidenzia il testo a tempo e consente agli utenti di condividerlo.
Console operativa di amministrazionedashboard per utenti, recapiti, visualizzazioni, riproduzioni e avanzamento della generazione audio, oltre a report su crescita e prestazioni per lingua.
Gestione delle trasmissioni e dei contenuticrea e modifica trasmissioni, rigenera o riprova i task audio bloccati e gestisci i testi localizzati dell'app e i link agli store.
Gestione utenti e impostazionigestisci ruoli e stato attivo, scegli il comportamento a promemoria singolo o multiplo e invia notifiche di test.

Galleria

Panoramica di amministrazione ZED con statistiche sintetiche su utenti, contenuti e recapito
Grafici ZED su engagement e lingue con attività di trasmissione di esempio

Sfide e soluzioni

Il recapito delle notifiche è il nucleo tecnicamente più esigente del prodotto. Poiché le trasmissioni vengono inviate per singolo utente, per fuso orario e secondo una programmazione, il backend gestisce il recapito tramite cron job di Convex e un pool di lavoro in background anziché trigger estemporanei, con marcatori di retry tracciati sull'attività di ciascun utente in modo da recuperare automaticamente i contenuti non fruiti.

La generazione dell'audio è l'altra parte dinamica che deve rimanere affidabile. Convertire il testo in audio narrato è lento e può fallire, quindi ogni elemento di contenuto localizzato tiene traccia del proprio stato di generazione e del conteggio dei tentativi; inoltre, gli amministratori possono visualizzare lo stato di avanzamento e riavviare i job bloccati direttamente dalla dashboard. Il monitoraggio dell'engagement — con la registrazione degli eventi di consegna, visualizzazione e riproduzione corredati di timestamp — è integrato direttamente nel modello dati, il che significa che i report provengono direttamente dallo stesso archivio senza bisogno di una pipeline di analisi separata.

Risultato

ZED è un sistema multipiattaforma completo in cui un unico backend Convex alimenta sia un'app mobile per gli utenti finali sia una dashboard operativa. Pianifica trasmissioni personalizzate, multilingue e con narrazione automatica, fornendo report su ogni passaggio del recapito. È un solido esempio di ingegneria di prodotto a elevata orchestrazione, in cui il backend gestisce il lavoro complesso di programmazione e contenuti multimediali, consentendo alle app di rimanere snelle.

Hai un problema di prodotto simile?

Condividi il prodotto attuale, il risultato di cui hai bisogno e i vincoli già presenti. Li utilizzerò per definire un primo milestone sensato.

Assumere uno sviluppatore full stack
Inizia il tuo project brief
Tutti i progettiProgetto successivoSchooliee
ZED (My Islamic Reminders): Piattaforma di broadcast multipiattaforma | Muhammad Arslan