Muhammad Arslan
وظفني
العودة إلى المشاريع

ZED (تذكيراتي الإسلامية)

تطبيق للأجهزة المحمولة بالإضافة إلى لوحة تحكم إدارية عبر الويب لبث التذكيرات الإسلامية متعددة اللغات وفق الجدول الشخصي لكل مستخدم، مع سرد صوتي مولد آلياً وتحليلات تسليم شاملة.

الدور: 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 كمصدر وحيد وموثوق للحقيقة تشترك فيه تطبيقات الهواتف ولوحة الإدارة معاً. وتقوم فلسفة التصميم المتبعة في الشيفرة البرمجية على تولي الخادم الخلفي لتنسيق كافة العمليات (Orchestration)، بما في ذلك الجدولة ومحاولات الإعادة ومهام توليد الصوت والتحليلات، بينما تظل الواجهتان الأماميتان خفيفتين وتعتمدان على واجهة برمجة التطبيقات المولدة تلقائياً.

الحزمة التقنية

الهاتف المحمول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 مع عينة من نشاط البث

التحديات والحلول

يمثل تسليم الإشعارات اللحظية الجوهر التقني الأكثر تطلباً في المنتج؛ فنظراً لإرسال التذكيرات لكل مستخدم وفق منطقته الزمنية وجدوله المحدد، يتولى الخادم الخلفي التسليم من خلال مهام مجدولة (cron jobs) عبر Convex ومجموعة معالجة خلفية بدلاً من المشغلات اللحظية غير المنظمة، مع تتبع مؤشرات المحاولة مقابل نشاط كل مستخدم لمتابعة المحتوى الفائت تلقائياً.

يُعد توليد الصوت المكون الديناميكي الآخر الذي يتطلب موثوقية عالية مستمرة. فتوليد الصوت من النصوص يستغرق وقتاً وقد يتعرض للفشل؛ لذا يتم تتبع حالة التوليد وعدد محاولات الإعادة لكل محتوى مترجم بشكل مستقل، مع تمكين المديرين من مراقبة التقدم وإعادة تشغيل المهام المتوقفة من لوحة التحكم. كما تم دمج تتبع التفاعل — الذي يسجل أحداث التسليم والمشاهدة والتشغيل مع الطوابع الزمنية — مباشرة في نموذج البيانات، مما يتيح استخراج التقارير مباشرة من مستودع البيانات ذاته دون الحاجة إلى مسار تحليلات منفصل.

النتيجة

ZED هو نظام متكامل متعدد المنصات، حيث يقود خادم خلفي واحد قائم على Convex كلاً من تطبيق الأجهزة المحمولة ولوحة تحكم العمليات. يتولى النظام جدولة الرسائل المخصصة والمتعددة اللغات والمروية صوتياً تلقائياً، ويصدر تقارير دقيقة حول كل مرحلة من مراحل تسليمها. ويُعد نموذجاً قوياً لهندسة المنتجات المعتمدة على التنسيق المتقدم للعمليات (Orchestration)، حيث ينفذ الخادم الخلفي مهام الجدولة ومعالجة الوسائط المعقدة لتبقى التطبيقات سلسة وبسيطة.

هل تواجه تحدياً تقنياً مشابهاً في منتجك؟

شاركني الوضع الحالي للمنتج، والنتيجة المطلوبة، والمعوقات القائمة. وسأعتمد على ذلك في تحديد محطة تسليم أولى منطقية وعملية.

وظّف مطور Full-Stack
ابدأ ملخص مشروعك
جميع المشاريعالمشروع التاليSchooliee
ZED (تذكيراتي الإسلامية): منصة بث متعددة المنصات | Muhammad Arslan