REVIEW · مرجع دائم

📚 المرجع

كل التفاصيل التأسيسية للمشروع — أنواع الحسابات، البنية التقنية، الاستضافة. اقرأها قبل خطة العمل.
خطة العمل Progress الإدارات
👤أنواع الحسابات
النوعالدور بالمنتجالتسجيل
مستخدم عادي
user
يستهلك ويتفاعل — الوضع الافتراضيذاتي عند التسجيل
مراجع
reviewer
ينتج محتوى موثوق، يبني سمعةذاتي، أو ترقية لاحقة بالنقاط
تاجر
seller
يعرض منتجاته، يستفيد من مصداقية المراجعينذاتي + رقم هاتف إلزامي
مدير
admin
إشراف وثقة وأمانيدوي بقاعدة البيانات فقط — لا تسجيل ذاتي
قرار معماري مهم: "المعلن" ليس دوراً خامساً مستقلاً — لا توجد قيمة advertiser بعمود profiles.role أصلاً. الإعلان قدرة إضافية فوق حساب seller نفسه (ضمن المرحلة 3 بخطة العمل).
🗄️قاعدة البيانات — Supabase
المزوّد
Supabase (Postgres + Auth + Storage + Edge Functions)
الأمان
RLS مفعّل على الجداول الحساسة. الكتابة المباشرة على orders / rp_transactions / products ممنوعة بالكامل (WITH CHECK false) — تمر إجبارياً عبر Edge Functions.
Edge Functions
process-order · manage-rp · create-product
الهجرات
supabase/migrations/*.sql — مرتبة زمنياً، آخرها طابور موافقة المجتمعات
مفاتيح الاتصال
EXPO_PUBLIC_SUPABASE_URL وEXPO_PUBLIC_SUPABASE_PUBLISHABLE_KEY — بملف .env المحلي فقط، غير مرفوعة لـGitHub
🐙المستودع — GitHub
الاسم
ramutlaq-rev/ReviewAPPv1 Private
الفرع الرئيسي
main كوميت ودفع مباشر، بلا PR
deploy.yml
يبني تطبيق الويب (Expo export) وينشره على GitHub Pages. يحتاج إصلاح: يستهدف push على master بدل main حالياً (مرحلة 0).
deploy-dashboard.yml
ينشر مجلد dashboard/ تلقائياً على Cloudflare Pages عند push على main — بانتظار ربط سرّين الحساب.
🌐الموقع الإلكتروني — reviewapp.io
المحتوى
website/ — index, about, contact, privacy, terms, support, delete-account
المستضيف
Cloudflare — منشور حالياً كصفحة ستاتيك
الداشبورد الداخلي
dashboard/ — نفس نمط الاستضافة، ينتظر ربط Cloudflare Access للحماية بيوزرنيم/باسورد
📱تطبيق الجوال
المنصة
Expo SDK 56 + expo-router
EAS Project ID
761c5629-ca69-4477-9603-634118e4ec47
iOS Bundle ID
com.reviewapp.sa
Apple Team ID
66366UCG78
Android Package
com.ramutlaq_rev.ReviewApp
الصفحات
جرد المسارات الفعلية — التفصيل الكامل بصفحة جرد الصفحات
🧭خريطة الداشبورد نفسه
index.html
خطة العمل اليومية — أين وصل المشروع، ما أُنجز، الجاري، التالي والعوائق
progress.html
الحالة اليومية والمراحل والخطوات والأعطال وأدلة بوابات الانتقال في صفحة واحدة
defects.html
سجل الأعطال المكتشفة أثناء الاختبارات التي لم تُحل بعد؛ تختفي من العرض عند إغلاقها وتبقى محفوظة في البيانات
status.html
الإدارات — نفس المهام مقسّمة حسب القسم المسؤول (باك إند / تصميم / نمو / تدقيق) للمتابعة اليومية من الجوال
reference.html
هذي الصفحة — مرجع ثابت لا يتغير كل يوم، عكس بقية الصفحات
pages.html
جرد مسارات التطبيق الفعلية، مصنفة حسب المجال والحماية والجمهور المستهدف
roles.html
مصفوفة الأدوار والصلاحيات وحدود الوصول المتوقعة لكل نوع حساب
scenarios.html
سيناريوهات الاستخدام من البداية للنهاية ونقاط التحقق لكل رحلة
qa.html
مصفوفة الاختبار: جرد آلي للأزرار والمعاملات والتنقل، حدود الأداء، المنصات وسجل إعادة الاختبار
data/tasks.json
مصدر الحقيقة الوحيد — كل صفحة تقرأ منه حياً، تحديثه ينعكس بكل مكان تلقائياً

منهج الاختبار والأدلة وبوابات الانتقال

لا تُعتبر المرحلة جاهزة لمجرد اكتمال البرمجة. ينفذ Claude أو Codex الاختبارات الممكنة، ويسجل نتائجها في Progress، ثم يصدر قرار بوابة صريحًا.

1. تحديد النطاق

حصر صفحات المرحلة وأزرارها وخدماتها وجداولها وأدوار المستخدمين والسيناريوهات المتأثرة.

2. التنفيذ الآلي

تشغيل TypeScript وLint والاختبارات الوظيفية والتكاملية وE2E وفحوص قاعدة البيانات والصلاحيات والأداء.

3. التحقق الفعلي

فحص القراءة والكتابة والتعديل والحذف، الحالات الطرفية، الشبكات الضعيفة، الضغط المتكرر، ومنع الوصول غير المصرح.

4. تسجيل الدليل

يُسجل نوع الفحص والنتيجة والمنفذ ووقت التحقق والملاحظة، ولا تظهر كلمة «تم» إلا بعد نجاح الفحص.

5. معالجة وإعادة اختبار

أي فشل مانع يُعالج ثم تُعاد اختبارات المرحلة واختبارات عدم كسر المراحل السابقة.

6. قرار البوابة

جاهزة للانتقال، أو غير جاهزة بسبب فشل، أو غير جاهزة لأن التحقق لم يكتمل.

محاور الأدلة الخمسة

وظيفيًا
الرحلات الحرجة تعمل من البداية للنهاية وكل معاملة محفوظة صحيحة.
أمنيًا
الصلاحيات وRLS والملفات والدخول والإدارة اجتازت اختبارات التجاوز.
تقنيًا
لا أعطال حرجة والأداء مستقر على iOS وAndroid والويب والشبكات الضعيفة.
تجريبيًا
الحسابات الحقيقية لكل دور أكملت الرحلات دون عوائق مانعة.
تشغيليًا
المراقبة والنسخ الاحتياطي والدعم والسياسات ومتطلبات المتاجر جاهزة.

حالات الدليل ومعايير القرار

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

شرط الانتقال: نجاح جميع الأدلة الإلزامية، عدم وجود دليل فاشل مانع أو عطل أمني/حرج، ونجاح اختبارات عدم التراجع. قبل الإطلاق تُطبق كذلك بوابة الإطلاق النهائية الواردة في خطة العمل.

حدود الأداء وتغطية المنصات

استجابة الضغط
استجابة مرئية مستهدفة خلال 100ms تقريبًا.
حالة التحميل
تظهر إذا تجاوزت العملية 300ms.
فتح الصفحة
قرابة ثانية للصفحات الأساسية على اتصال جيد.
المنصات
iOS وAndroid والويب، مع شبكة وجهاز ضعيفين.
سجل المحاولات
كل تحقق وإعادة تحقق يسجلان الحالة والتاريخ والمنفذ والملاحظة في evidence_results.

اختبارات الشكل والشعور والمشاعر

تُنفذ لكل رحلة وصفحة حرجة، ولا تقتصر على سلامة الكود: اتساق Look & Feel، الانطباع الأول، الثقة، الوضوح، قابلية اكتشاف الميزة، الحمل المعرفي، الإحباط والارتباك، ووضوح حالات النجاح والخطأ والفراغ.

SUS
مقياس قابلية الاستخدام بعد إكمال الرحلات الأساسية.
CSAT
رضا المستخدم عن الرحلة أو الصفحة.
CES
مقدار الجهد الذي احتاجه المستخدم لإكمال المهمة.
الوسائط
زمن الاختيار والمعاينة والضغط والرفع والتقدم والإلغاء وإعادة المحاولة.
السلاسة
Cold/Warm Start، التنقل والبحث وFPS والذاكرة والبطارية وزمن معاملات قاعدة البيانات.