Muhammad Arslan
聘请我
返回项目

ZED (My Islamic Reminders)

一个移动应用加上 Web 管理控制台,按每个用户的个人日程安排提供多语言的伊斯兰播报,带有自动生成的配音音频和完整的分发分析。

角色: Contributing developer (team project, led by another engineer)时间表: 2025-2026类型: Cross-platform app + admin

Expo (React Native)

Next.js

Convex

OpenAI TTS

TanStack Table

Recharts

包含示例用户增长、参与度和语言图表的 ZED 管理员仪表盘

概览

ZED 是一个精神播报平台,作为 monorepo 构建,包含三个共享一个后端的部分:面向最终用户的 Expo 移动应用、面向运行人员的 Next.js 管理员仪表盘,以及保存数据并执行调度、通知、分析和音频生成的 Convex 后端。该产品在用户首选的当地时间、以他们选择的语言向用户发送简短的伊斯兰播报,并在播放时自动将其转换为带有逐词高亮的配音音频。

问题

该产品的难点不在于展示内容,而在于编排。用户希望播报在他们自己时区的特定时间发送,并使用包括从右到左脚本在内的几种语言之一。每个播报都应该可以作为文本、音频或可分享的内容来消费。管理员需要看到实际发生的情况:已发送、已查看和已播放的内容,以及音频生成是否跟上。当有人错过内容时,系统应该自行跟进。真正的工作是将预定分发、语言选择、音频生成、推送通知和分析整合到一个连贯的系统中。

我的角色与方法

这是一个主要由另一位工程师领导的团队项目,我作为其中的一名开发人员做出了贡献。我的参与是专注的而非主要的,在围绕 Convex 作为移动应用和管理员仪表盘共享的单一真相来源构建的架构中。整个代码库的设计原则是后端拥有编排,包括调度、重试、音频作业和分析,而两个前端保持轻量并从生成的相同 API 中读取。

技术栈

移动端Expo and React Native with Expo Router, Jotai, expo-audio, expo-notifications
管理Next.js with React, TanStack Table, Recharts, Sonner, and a shadcn-style UI
后端Convex for data, queries, mutations, storage, cron jobs, and a background work pool
媒体OpenAI text-to-speech for narrated audio generation
通知push delivery with a retry policy

主要功能

个性化的预定分发每个用户的播报都会在他们首选的当地时间到达,并与其所在时区匹配。
多语言内容多种语言的播报,包括完整的从右到左支持,并从用户的偏好中选择最佳变体。
自动生成的旁白every broadcast is turned into audio through text-to-speech, with word timings so the text highlights in sync as it plays.
引导式的播报体验移动屏幕播放配音音频,跟随高亮,并允许用户分享文本。
管理员运营控制台用于用户、分发、视图、播放和音频生成进度的仪表盘,加上增长和语言表现报告。
播报和内容管理创建和编辑播报,重新生成或重试停滞的音频作业,并管理本地化应用文案和商店链接。
用户管理和设置管理角色和活动状态,选择单一或多重提醒行为,并发送测试通知。

图集

包含合成用户、内容和分发统计数据的 ZED 管理员概览
包含示例播报活动的 ZED 参与度和语言图表

挑战与解决方案

通知分发是该产品对技术要求很高的核心。因为播报是按用户、按时区在时间表上发出的,所以后端通过 Convex cron 作业和后台工作池而不是临时触发器来处理分发,并针对每个用户的活动跟踪重试标记,以便自动跟进错过的内容。

音频生成是另一个必须保持可靠的移动部分。将文本转换为配音音频很慢并且可能会失败,因此每段本地化内容都会跟踪自己的生成状态和重试次数,管理员可以从仪表盘看到进度并重新运行停滞的作业。参与度跟踪,即记录带有时间戳的送达、查看和播放事件,直接内置到数据模型中,这意味着报表直接来自同一存储,无需单独的分析流水线。

成果

ZED 是一个完整的跨平台系统,其中单个 Convex 后端同时驱动消费者移动应用和运营仪表盘。它调度个性化的、多语言的、自动配音的播报,并报告其分发的每一步。这是一个编排繁重的产品工程的有力例子,后端完成艰苦的调度和媒体工作,以便应用程序可以保持简单。

有类似的产品问题?

分享当前的产品情况、您需要的成果以及已经存在的限制条件。我将以此为基础来确定一个合理的首个里程碑。

雇佣全栈开发人员
启动您的项目简报
所有项目下一个项目Schooliee
ZED (My Islamic Reminders):跨平台播报平台 | Muhammad Arslan