منتج
منصة إدارة مدرسية متعددة المؤسسات
نشرٌ واحد يخدم مدارس وشركات كثيرة، ولا ترى كل واحدة إلا أشخاصها وسجلاتها. ونموذج الصلاحيات هو الجزء الجدير بالشرح، لأنه الجزء الذي عليه أن يصمد.
الحالة: قيد التطوير النشط.
المشكلة
تقوم المدرسة على العلاقات: أي طالب في أي مجموعة، وأي معلّم يدرّس أي مادة لأي مجموعة، وأي وليّ أمر مرتبط بأي طفل. وتتغيّر هذه العلاقات كل فصل دراسي، وتعيش عادةً في جدول بيانات يحفظه شخص واحد.
ويسهل بناء برمجية لهذا بناءً سيئاً. والفخّ قاعدة بيانات واحدة تسمح بهدوء لمدرسة بقراءة بيانات أخرى، وهو ما يُكتشف مرة واحدة بالضبط ولا يُغتفر أبداً.
كيف يعمل
المنصة متعددة المؤسسات. يحمل كل سجل المؤسسة التي يخصّها بوصفها معرّفاً، وتتحقق كل عملية في واجهة البرمجة من انتماء المستخدم إليها قبل أن تعيد شيئاً أو تكتبه. والاستعلام الذي لا يستطيع تسمية مؤسسته لا يعمل.
وفوق ذلك تأتي الكيانات التي يحتاجها اليوم فعلاً: مدارس وشركات، وفصول، ومجموعات فصول، وطلاب، وأولياء أمور، ومعلّمون، ومواد، وإسناد المعلّمين إلى المواد، وإسناد المواد إلى مجموعات الفصول.
ما تغطيه واجهة البرمجة
القوائم مقسّمة على صفحات، لأن مدرسة فيها ألفا وليّ أمر لا ينبغي أن تكون استجابة واحدة.
- قوائم مقسّمة على صفحات لأولياء الأمور والمعلّمين والطلاب
- إدارة الفصول ومجموعات الفصول
- إسناد المواد إلى الفصول وإلى مجموعات الفصول
- إسناد المعلّمين إلى المواد، بما في ذلك عدة معلّمين لمادة واحدة
- الاستعلامات العكسية: فصول لم تُسنَد بعد إلى مادة، ومعلّمون لم يُسنَدوا بعد إلى مادة
لماذا تهمّ الاستعلامات العكسية
السؤال الذي تطرحه الإدارة في أيلول ليس «من يدرّس هذه المادة». بل «أي المواد لم يتولَّها أحد بعد». والمنصة التي تجيب عن السؤال الإيجابي وحده تعيد مستخدميها إلى جدول البيانات ليستخرجوا الثغرات، لذلك فالاستعلامات العكسية نقاط أصيلة في واجهة البرمجة لا تقرير يُضاف لاحقاً.
أربعة أدوار في الأعلى، وتحقق من الصلاحيات في الوسط، ومجموعتا بيانات منفصلتان لمؤسستين في الأسفل، ما يبيّن أن كل دور لا يصل إلى البيانات إلا عبر التحقق.
البنية
المؤسسة في مسار الوصول
معرّف المؤسسة جزء من كيفية الوصول إلى السجل لا عمود يُرشَّح بعد ذلك. وإضافة مدرسة سطر؛ وليست عملية نشر.
التحقق من الصلاحيات عند حدود واجهة البرمجة
تتحقق كل عملية من مؤسسة المستخدم ودوره قبل أن تلمس البيانات. وتعكس الواجهة تلك الحالة؛ ولا تقرّرها أبداً.
الحالات السلبية أولاً
الاختبارات المهمة تتحقق مما يحدث حين يكون السجل تابعاً لمؤسسة أخرى. فيُسقط التسريبُ البناءَ بدل أن يصل إلى مستخدم.
التقنيات
PHP Laravel MySQL Redis React Next.js Docker
الخدمات ذات الصلة
البرمجيات كخدمة والبرمجيات المخصّصة
منصات أعمال متعددة المؤسسات، بعزل البيانات لكل مؤسسة، وأدوار، وواجهة برمجة يتشاركها كل العملاء.
تطبيقات الويب
واجهات React وNext.js فوق واجهات برمجة Laravel وNode، بما فيها لوحات الإدارة والواجهات من اليمين إلى اليسار.
ابدأ مشروعاً
اكتب بالإنجليزية أو الفرنسية أو الرومانية أو العربية. كل رسالة تتلقى رداً مكتوباً خلال يوم عمل واحد.
أخبرنا بما تبنيه.
اكتب بالإنجليزية أو الفرنسية أو الرومانية أو العربية. كل رسالة تتلقى رداً مكتوباً خلال يوم عمل واحد.