لوحة التحكم اللي تدير التطبيق
اللي يشغّل الشغل ما يعيش جوا تطبيق المستخدم. يبي لوحة ويب على نفس البيانات — ناس، محتوى، حجوزات، صلاحيات — وإلا شاشات الجوال ما تسوي شغل.

لوحة التحكم هي الموقع اللي يدير منه شغله: المستخدمين، المحتوى، الحجوزات، العروض، الصلاحيات، الدفعات — على نفس بيانات التطبيق. شاشات المتجر نص المنتج. إذا التاجر ما يقدر ينزل عرض، أو العيادة ما تشوف قائمة بكرة، أو المدرّب ما يسجّل دفعة، شاشات الجوال ما تهم.
عندنا تطبيق المستخدم Flutter أو Swift. اللوحة React. الاثنين على نفس مشروع Supabase. هذي مو قالب. هذي النص الثاني من المنتج.
وش هي اللوحة — ووش مو هي
موقع بصلاحيات، على نفس صفوف الجوال. مو ووردبريس. ووردبريس للصفحات. هذي لشغل يومي. مو لوحة أرقام. الرسوم لللي يراقب. اللوحة لللي يشتغل. مو فورم مولّد فوق كل جدول. مو «تبويب أدمن» جوا تطبيق الزبون.
ليش تطبيق حقيقي يحتاج لوحة
الآلة الحاسبة ما تحتاج لوحة. أي شيء فيه ناس أو محتوى أو حجوزات أو عروض أو فلوس يحتاجها. تاجر ما يقدر يخفي فرع مقفل بيتصل فيك. عيادة تدير يومها على واتساب ما طلعت من واتساب. مدرّب يرسل إكسل للدفعات يسوي اللوحة أصلًا، بس بشكل سيئ.
السؤال مو «نحتاج لوحة؟». السؤال هو الاختبار فوق. إذا الجواب قائمة، هذي هي النطاق.
اللوحة والتطبيق منتج واحد
قاعدة واحدة. جهتين. خلفية الجوال مو سيرفر ثاني للوحة. هي Postgres ودخول وتخزين. الجوال واللوحة عليها. تاجر T-CODE ينزل عرض، المتسوق يشوفه على الخريطة. عيادة Naqrah تحط موعد، المريض يشوفه في التطبيق. ما في مزامنة. صف واحد.
- تاجر T-CODE — فروع وعروض وأكواد استرداد. المتسوق يشوف العروض القريبة على خريطة.
- عيادة Naqrah — المواعيد في مكان واحد. المريض يحجز أو يأجّل بكم لمسة.
- مدرّب Oxygen — دورات واختبارات وطلاب ودفعات. الطالب يذاكر جوا الدورة.
- مورّد WOSTA — عروض وفواتير ومستودع أو فرع. المشتري يقارن.
هذي منتجات شغّالة. اقرأها: T-CODE، Naqrah.app، Oxygen Academy، WOSTA. ما في نسب مخترعة. ما في أعداد مستخدمين مخترعة. حجز العيادة وشراء المستلزمات منتجين، مو قطاع واحد — التفصيل في مقالة لحاله. العروض المحلّية كوجه متسوّق ووجه تاجر في مقالة ثانية.
كيف نبنيها
القاعدة تتصمم مرة. Flutter أو Swift لتطبيق الزبون. React للوحة. مشروع Supabase واحد تحتهم. اللوحة تتصمم جنب شاشات التطبيق، مو بعد الإطلاق ترقيع. الصلاحيات في البيانات من أول أسبوع — في مكان السيرفر يتحكم فيه، مو حقل المستخدم يعدّله. عند التسليم المشروع والدخول حقك.
إذا عميلك عيادة أو محل أو مورّد، اللوحة بعد تخدم أكثر من جهة. صاحب المنصة ومدير العيادة مو نفس الدخول.
صلاحيات، مو أدمن واحد
لوحة شغّالة مو حساب واحد فوق الكل. مالك، وتاجر، وموظف فرع، ومراجع — كل واحد يسوي أشياء وما يسوي أشياء. عيادة ما تشوف مواعيد عيادة ثانية. موظف استقبال ما يغيّر الأسعار. مراجع حكومي يمكن يقرأ سنة مقفلة بس.
الصلاحية في قاعدة البيانات. تخبّي زر في React مو حماية. اللي معه المفتاح العام يقدر ينادي الـ API. اللي يمنع هو قوانين الصف في القاعدة. نفس القوانين على توكن الجوال وتوكن اللوحة. مفتاح service role يعدّيها. مكانه سيرفر تثق فيه. ما يدخل المتصفح ولا التطبيق ولا لوق ولا سكرين شوت.
CareerFolio يقفّل سنة أداء خلصت، تصير قراءة فقط، ويشاركها برابط. هذي صلاحية في البيانات، مو عنصر قائمة.
شغل الأسبوع
محتوى: تنزّل عرض أو تخفيه، دورة، ملف عيادة، فرع. تشغيل: تسترد كود، تنقل موعد، تقبل عرض، تصدر فاتورة، تسجّل دفعة. هذي لوحة الشغل. الرسوم تجي بعدين، إذا جت.
في أفعال خطرة. حذف مستخدم. ترجيع فلوس. تغيير صلاحية. فتح أرشيف. تصدير بيانات ناس. هذي تحتاج تأكيد، وسبب، وسطر يقول من سوّاها ومتى. لوحة ما تقدر تقول مين غيّر هذا ومتى — هذي ما خلصت. التصدير كمشكلة منتج في مقالة PDPL.
وش نبني أول — ووش نرفض
أول شيء: دخول، صلاحيات، الإجراءين أو الثلاثة اللي تصير كل أسبوع، بحث على هالسجلات، وسطر على الفلوس والهوية. بعدين: رسوم، توقعات، نظام تذاكر. لوحة جوال فخمة مو أول شيء. اللي يشغّل يجلس على مكتب.
- ما نسوي واجهة قاعدة البيانات ونسمّيها منتج.
- ما نسوي دخول واحد يسوي كل شيء.
- ما نقول «نضيف اللوحة بعد ما نطلع على App Store».
أخطاء نشوفها كثير
- تطلع تطبيق الزبون وما في لوحة.
- تعامل اللوحة زي قالب ووردبريس.
- رسوم قبل الشغل اليومي.
- الصلاحيات في راوتر React بس.
- قاعدة بيانات ثانية «للوحة».
اللوحة مو مرحلة ثانية
هي كيف الشغل يمشي يوم التطبيق يطلع. إذا قاعد تحدد نطاق تطبيق جوال واللوحة بعد سلايد في الآخر، النطاق ناقص. اكتب لنا واللي يشغّلون في الغرفة، مو شاشات المتجر لحاله.