لوحة التحكم
مرحباً بك — آخر تحديث:
يعرض التقرير المضمّن من Looker Studio. تأكد من مشاركة التقرير مع حسابات من يحتاجون لرؤيته (أو «عام» إن كان ذلك مناسباً لسياسة الخصوصية).
من جدول whatsapp_leads عند اختيار «أستاذ» في «تسجيلات واتساب». الجدول أعلاه يعرض فقط من لهم صف في tutors بعد التسجيل أو إنشاء الحساب.
الجدول أعلاه = طلاب لهم صف في students فقط. هنا تظهر متابعات واتساب عند اختيار «طالب» في «تسجيلات واتساب». بعد زر إنشاء حساب واكتمال الدمج يظهر الطالب أعلاه.
سجّل هنا من تواصلوا عبر واتساب لطلب الانضمام — بمن فيهم من لم يُسجّلوا بعد في الموقع أو التطبيق (مثلاً لا يملكون بريداً أو يفضّلون واتساب فقط). يبقى السجل في whatsapp_leads كمتابعة داخلية حتى يُنشَأ لهم حساب في المنصة.
من عمود «حساب» يمكنك إنشاء حساب دخول (بريد وهمي + كلمة مرور تُعرض مرة واحدة) وإرسالها للمستخدم عبر واتساب؛ بعد الربط تُحدَّث الحالة تلقائياً إلى «مسجّل في المنصة».
الدمج التلقائي مع جداول students / tutors يحدث عند تسجيل المستخدم في Auth وربط السجل (انظر supabase/sql/whatsapp_lead_promote_on_registered.sql إن لم يكن مفعّلاً).
الجلسات ستظهر هنا
عندما يبدأ الطلاب والأساتذة بالتفاعل، ستظهر الجلسات هنا
تقييمات الطلاب لجلساتهم بعد انتهائها — تأتي من تطبيق رافِدَيْن (شاشة LiveSession).
تُخزَّن في session_ratings ويُجلب الجدول هنا عبر RPC
get_recent_ratings المحمي بـ user_is_admin().
سجل تلقائي لمن انضم إلى أي جلسة مباشرة (تُكتب من التطبيق عند فتح الشاشة وعند مغادرتها).
المصدر: session_attendance عبر RPC
get_recent_attendance.
🚧 الدفع الحقيقي — الخطوة القادمة
سيتم تكامل Zain Cash API في المرحلة القادمة. الآن التطبيق يعمل بدون دفع حقيقي.
اختبار الواجهة: لعرض صفّين تجريبيّين دون قاعدة بيانات، أضف
?demo=1 إلى الرابط ثم حدّث الصفحة، أو
اضغط هنا.
يظهر هنا طلبات رفع الهوية والشهادات. الموافقة تنشر الفصول المعلقة تلقائياً إذا كان محرّك teacher_approval_publish_classes_trigger.sql مفعّلاً.
فصول أنشأها الأستاذ وهي بحالة pending_approval إلى أن تُوافق عليها هنا أو إلى أن تُوافق على وثائق الأستاذ (حسب إعداداتك).
الموقع والتطبيق يعتمدان على Supabase: Auth (تسجيل الدخول والجلسات) وPostgreSQL (البيانات) مع Row Level Security (RLS).
- مرجع المشروع (Project ref)
—- عنوان API
—
جداول PostgREST المستخدمة في لوحة الإدارة
tutors— الأساتذةstudents— الطلابwhatsapp_leads— تسجيلات واتساب (يدوي). من صفحة «تسجيلات واتساب» زر إنشاء حساب ينشئ مستخدماً في Auth ويربطuser_id. الدمج معstudents/tutors:supabase/sql/whatsapp_lead_promote_on_registered.sqlsessions·bookings— الجلسات والحجوزاتteacher_documents— مستندات التحققclasses— فصول بحالةpending_approvalتظهر في «طلبات التحقق» للنشر إلىupcoming
الطلبات من هذا المتصفح تستخدم JWT الخاص بالمستخدم المسجّل (anon key + جلسة)، وليس مفتاح الخدمة. تعديل السياسات والجداول يتم من مشروع Supabase نفسه.
للمشرفين: تأكيد البريد ورسائل التسجيل
لإلزام المستخدم باستلام رسالة تأكيد، افتح Supabase → Authentication → Sign In / Providers → Email وفعّل Confirm email
(إن كان معطّلاً، لن تُرسل أي رسالة تأكيد). لإعادة إرسال رابط لمستخدم: Authentication → Users → المستخدم → إعادة إرسال التأكيد.
تأكد أن Site URL وRedirect URLs تتضمن عنوان الموقع الحقيقي (ومع www إن استُخدم) ومسار /login.html.
راجع أيضاً Authentication → Logs عند فشل الإرسال. ولتحسين التسليم وظهور المرسل باسم نطاقكم، يُفضّل SMTP مخصص:
توثيق Supabase — SMTP.
مرجع إضافي للمطوّرين (المستودع، وليس على نطاق الموقع العام): docs/EMAIL.md