- ابدأ الآن
- البيئة المحلية
- البنية المعمارية
- الهيكل
- الأنماط
- الحزمة التقنية
- قاعدة البيانات
- تعدّد المستأجرين
- الفهرس (Catalog)
- العمل دون اتصال
- المصادقة
- التهيئة (Onboarding)
- تدفق التكامل (Integration Flow)
- التهيئة (Provision)
- القبول
- الحضور
- الامتثال التنظيمي
- الملف الشخصي
- الاجتماعات
- إدارة الرسوم
- الفاتورة
- التدويل
- الترجمة
- دليل الترجمة
- أمان قاعدة البيانات
- المساهمة
- الإلهام
- المالية
- النقل
تمرّ كل مدرسة بسلسلة الاعتماديات نفسها. معظم الطبقات تُهيّأ تلقائياً لحظة اكتمال التهيئة الأولى — آلية التهيئة (المراحل، وإعادة التشغيل الآمن، وطبيب الإصلاح، ومحرّك التقويم المدرك للفصول الدراسية) موثّقة في التهيئة؛ هذه الصفحة هي الخريطة.
الترتيب يجسّد فكرة مقصودة واحدة: الجدول يأتي قبل الأشخاص. الجدول قابل للاشتقاق من البنية وحدها (صفوف × مواد × شُعب × جدولة)، فيُولَّد بلا معلمين. ثم يوضع الطلاب في الشُعب، ويُسند المعلمون إلى المواد — ويتدفق الحضور والاختبارات والدرجات والتقارير من هناك.
الطبقات
| الطبقة | الاسم | ما تنشئه | تعتمد على |
|---|---|---|---|
| 1 | الفهرس العام | Subject (لكل صف) ← فصول ← دروس | — |
| 2 | التهيئة الأولى | ملف المدرسة + مشغّل التهيئة | 1 |
| 3 | البنية الأكاديمية | AcademicLevel، AcademicGrade، AcademicStream | 2 |
| 4 | اختيار المواد | صفوف جسر SubjectSelection (صف ↔ فهرس) | 1، 3 |
| 5 | الجدولة | SchoolYear، وTerm ×N (مدرك للتقويم)، وPeriod، وSchoolWeekConfig | 2 |
| 6 | القاعات والشُعب | ClassroomType، Classroom، Section — N لكل صف | 3 |
| 7 | الجدول | حصص Timetable — شعبة × مادة × حصة × قاعة، بلا معلمين | 4، 5، 6 |
| 8أ | إسناد المعلمين | TeacherSubjectExpertise، TeacherDepartment، وteacherId للحصة | 4، 7 |
| 8ب | تنسيب الطلاب | Student.sectionId (+ Enrollment في LMS لمواد الصف) | 6 |
| 9 | الحضور | Attendance — كشوف الشُعب، مدرك للحصص عبر حصص الجدول | 7، 8ب |
| 10 | الاختبارات | SchoolExam، جلسات، تصحيح، ExamResult | 4، 8 |
| 11 | الدرجات والتقارير | ReportCard، شهادات، سجلات أكاديمية، ترفيع | 9، 10 |
| 12 | الوحدات التابعة | النقل، LMS، البث المباشر، المكتبة، المالية، الرسائل | متفاوت |
الطبقات 1–7 مهيّأة تلقائياً بالكامل. الطبقتان 8أ/8ب إجراءات إدارية بواجهات مساعدة. الطبقات 9–11 ميزات تشغيلية تضيء فور وجود اعتمادياتها.
الطبقة 1 — الفهرس العام
العمود الفقري المشترك. كل محتوى المنهج يعيش مرة واحدة في جداول عامة (بلا
schoolId)؛ والمدارس تتصل عبر جداول جسر.
Subject (لكل صف، لكل منهج: us-g1-math، sd-g7-arabic، …)
└─ Chapter
└─ Lesson
المواد لكل صف لا لكل مرحلة. المحتوى الذي ينشئه المعلمون يُحفظ PENDING +
PRIVATE، يراجعه مشغّل SaaS ثم يُنشر. المواد المقترحة من المدارس تمر بتدفق
الاقتراح الاختياري (موافقة ← نشر للفهرس ← المدرسة تضيف من المنتقي). المرجع
الكامل: الفهرس.
الطبقة 2 — التهيئة الأولى
إجابات التهيئة الأولى تقود كل ما بعدها:
| خطوة المعالج | تُحفظ في | تقود |
|---|---|---|
| الوصف | School.schoolType (public، private، international…) | ترشيح الهيكل، استنتاج المنهج |
| الموقع | School.country، city، state | استنتاج المنهج، تقويم الفصول |
| السعة | School.sectionsPerGrade، studentsPerSection | تهيئة القاعات/الشُعب |
| الجدولة | School.timetableStructure (معرّف الهيكل) | الحصص، أيام الدوام، تجاوز التقويم |
| محسوب | المعادلة |
|---|---|
maxClasses | grades × sectionsPerGrade |
maxStudents | maxClasses × studentsPerSection |
قبول الشروط في الخطوة القانونية يُطلق completeOnboarding() ← سلسلة التهيئة.
المراحل والترتيب ودلالات الإصلاح: التهيئة.
هياكل الجدول
~23 هيكلاً تعرّف توزيع الحصص الأسبوعي حسب الدولة ونوع المدرسة (sd-gov-default
8×45د الأحد–الخميس، gulf-standard 7×45د، us-standard 7×50د الاثنين–الجمعة،
ae-primary، jo-secondary، intl-default، …). يرتّبها
getRecommendedStructures(country, schoolType, schoolLevel):
| الإشارة | النقاط |
|---|---|
| مطابقة الدولة تماماً | +40 |
| مطابقة الإقليم | +25 |
البدل * | +5 |
مطابقة schoolType | +20 |
مطابقة schoolLevel | +10 |
نقاط ≥ 30 ← مُرشَّح؛ ≥ 50 ← اختيار تلقائي. خريطة الأقاليم: SA/AE/QA/KW/BH/OM ← GULF؛ EG/JO/LB/TN/MA/DZ ← MENA.
يمكن للهيكل أن يحمل تجاوز calendar — يتبع sd-british تقويم GB الثلاثي حتى
لو كانت دولة المدرسة SD.
الطبقة 3 — البنية الأكاديمية
ينشئ setupCatalogForSchool() الهرمية بحسب إعداد المنهج (SD العربي 6+3+3
بمساري العلوم/الأدب، US 5+3+4، GB Key Stages، CBSE، واحتياطي عام):
| النموذج | الحقول الأساسية |
|---|---|
AcademicLevel | level، levelOrder، startGrade، endGrade |
AcademicGrade | gradeNumber، levelId، yearLevelId |
AcademicStream | streamType (SCIENCE، ARTS)، gradeId |
يحدّد schoolLevel النطاق: primary ← صفوف 1–6، secondary ← 7–12،
both/فارغ ← 1–12.
الطبقة 4 — اختيار المواد
الجسر بين الفهرس العام وصفوف المدرسة — معرفة الصف والمنهج تعني معرفة
المواد. الإسناد التلقائي يطابق مصفوفات subject.grades في الفهرس بسلسلة
احتياطية تدريجية (دولة+منهج+نوع ← دولة+منهج ← عالمي ← أساس US)، ~99% يُسند
تلقائياً. التفاصيل: الفهرس.
ومن هناك تخصّص المدارس: إضافة مواد من أنظمة أخرى، إخفاء لكل صف (isActive)،
إخفاء فصول/دروس (ContentOverride)، إعادة تسمية (customName)، وضبط
weeklyPeriods — العدد الذي يجدوله مولّد الجدول أسبوعياً.
الطبقة 5 — الجدولة (مدركة للفصول الدراسية)
تشتق مرحلة الجدولة السنة الدراسية، وعدد الفصول، وحدود كل فصل، والفصل النشط
حالياً من دولة المدرسة وهيكلها وتاريخ اليوم — ACADEMIC_CALENDARS في
timetable/calendars.ts يربط كل دولة بنمط وزارتها (SA = فصلان بعد عودة 1447هـ،
AE/KW/GB = ثلاثة فصول، IN = سنة تبدأ في أبريل مع التفاف السنة، …).
ما يُنشأ: SchoolYear واحدة، وN من Term مع isActive صحيح التاريخ، وكل
Period من الهيكل، وSchoolWeekConfig (أيام الدوام + الغداء). كل سجل قابل
للتعديل لاحقاً من المدرسة ← الإعدادات ← الأكاديمية. جدول التقويمات الكامل
وسلسلة الحسم: التهيئة.
الطبقة 6 — القاعات والشُعب
إعدادات السعة (عدد الشُعب لكل صف + السعة) تنشئ N شعبة لكل صف، كل واحدة
مقترنة واحدة-بواحدة بـقاعة رئيسية واحدة فقط — Section.classroomId مفتاح
مفرد، فلا يمكن لشعبة أن تملك أكثر من قاعة رئيسية واحدة. نوع الغرفة يحكم:
القاعة الرئيسية من نوع classroom (قاعة Grade 7-A ↔ شعبة Grade 7-A). السلسلة المرسَّخة:
القاعة (رئيسية) ← ملك لصف ← الصف + المنهج ← المواد التي تُدرَّس هنا
الشعبة ← مجموعة الطلاب التي تسكن تلك القاعة
المختبرات والمساحات المشتركة شيء آخر — ليست مملوكة لصف ولا تُعيَّن أبداً
كقاعة رئيسية لشعبة؛ تُنشأ بنوع ClassroomType خاص بها (مختبر، حاسوب، مكتبة)
ويُوصَل إليها لكل حصة عبر الجدول (Timetable.classroomId)، ومتاحة للمولّد
للمواد المعلَّمة كمختبرات.
لا محور مقررات (أُزيل Class)
لا يوجد سجل مقرر منفصل. للصف مواد (SubjectSelection بحصصها الأسبوعية) وشُعب؛ والجدول والاختبارات والنتائج والواجبات والحضور تُحدَّد لكل شعبة (أو للصف كاملاً) ومادة، والتدريس هو SubjectTeacher. أُزيلت النماذج Class وStudentClass وClassTeacher وكل أعمدة classId في 2026-10-04 (راجع سياسة الإزالة).
الطبقة 7 — الجدول
الحصص مبنية على الشُعب:
Timetable {
schoolId, termId, dayOfWeek, periodId,
sectionId, // مَن (المجموعة) — أساسي
subjectId, // ماذا
classroomId, // أين
teacherId, // مَن يدرّس — قابل للفراغ، يُسند لاحقاً
weekOffset
}
قيود فرادة تمنع الحجز المزدوج (المدرسة والفصل الدراسي واليوم والحصة والشعبة
وإزاحة الأسبوع — وكذلك للقاعة). التوليد التلقائي يوزّع مواد كل صف (weeklyPeriods لكلٍ) على أيام
الدوام × الحصص التدريسية في قاعة الشعبة، بلا معلمين. التحرير اليدوي في
الشبكة شعبة-أولاً أيضاً: اختر الشعبة + المادة (+ المعلم عند معرفته).
يرتّب getRecommendedStructures التوزيعات عند التهيئة الأولى؛ وإن لم توجد فصول
دراسية بعد، تعرض الشبكة مسودّة غير محفوظة مع زر تهيئة للمدير.
الطبقة 8أ — إسناد المعلمين
يرتبط المعلمون بـالمواد، ثم بـالحصص:
| الدور | أين | الوصف |
|---|---|---|
| خبير مادة | TeacherSubjectExpertise | التأهيل لكل مادة (expertiseLevel) |
| معلم الحصة | Timetable.teacherId | من يدرّس هذه الشعبة-الفترة |
| رائد الفصل | Section.homeroomTeacherId | إشراف تربوي، لكل شعبة |
| عضو/رئيس قسم | TeacherDepartment | isPrimary، isDepartmentHead |
| معلم مادة | SubjectTeacher | معلم واحد لكل شعبة × مادة في الفصل الدراسي |
يُحظر deleteTeacher ما دامت مراجع SubjectTeacher أو Timetable موجودة؛
ويُحظر deleteSubject على مراجع الخبرة أو الاختبارات أو بنك الأسئلة.
والزوج شعبة × مادة بلا معلم يظهر في الجدول «بانتظار معلم»؛ يُسنَد المعلم من
معالج إضافة المعلم، أو قائمة صف /teachers («إسناد المواد»)، أو لوحة
/timetable/assignments.
الطبقة 8ب — تنسيب الطلاب
معالج القبول ذو الخمس خطوات ينتهي بـADMITTED ← التنسيب:
placement-dialog.tsx(لكل طالب) وbulk-placement.tsx(دفعة) كلاهما يستدعيplaceStudentInSection(applicationId, sectionId)— يتحقق منmaxCapacity، يضبطStudent.sectionId(التنسيب التشغيلي)، ثم يمنح الطالبEnrollmentفي LMS لكل مادة من مواد صف الشعبة (syncStudentSubjectEnrollments— حسب المسار، إضافة فقط). لم يعد يُكتب أي صفStudentClass.- عبر الشعبة يرث الطالب القاعة والجدول وكشف الحضور، وكل اختبار أو واجب أو إعلان يُحدَّد للشعبة أو لصفها كاملاً.
- يفسّر
extractGradeNumber()فيsrc/lib/grade-utils.tsالصفوف الحرة النص ("Grade 5"،"5th grade"،"الصف الخامس").
الطبقة 9 — الحضور
الحضور مبني على الشُعب: الكشف هو Student.sectionId (لا كشف لمقررات)،
ووضع الحصص يضيء مباشرة من الجدول —
- نطاق المعلم: يستطيع المعلم تسجيل الشُعب التي له فيها حصص جدول (أو ريادة فصل).
- الاختيار التلقائي للحصة الحالية: الـ
Periodالنشطة × حصة المعلم تحسم الشعبة تلقائياً. - تسجيل الحصص يكتب
sectionId+periodId+timetableId؛ وتسجيل اليوم الكامل يعمل بلا جدول إطلاقاً. - الجلسات وتصاريح الخروج ومشاركات المسابقة كلها لكل شعبة أيضاً؛ لا
classIdفي أي مكان.
الحالة: ~92%، مقوّى للإنتاج (تدقيق أمني 2026-06-02، 575 اختباراً أخضر). الامتثال (ADEK eSIS) يصدّر سجلات الوضع اليومي. المرجع الكامل: الحضور.
الطبقة 10 — الاختبارات
كومة التقييم تُحدَّد لصف + شعبة منه (أو الصف كاملاً) + مادة + فصل دراسي:
SchoolExam ← ExamSession ← StudentAnswer ← MarkingResult ← ExamResult
QuestionBank ← GeneratedExam ← GeneratedPaper
Result (درجات الواجبات / المنزلية)
جدولة الاختبارات تفحص حصص الجدول للتعارضات (طبقة تطبيق). أبرز المفتوح من تدقيق
الإنتاج: نموذجا نتائج متنافسان (Result + ExamResult)، وعدم تطابق دقة
الدرجات (Int مقابل Decimal)، وسلاسل حذف لا تحفظ دليل الشهادة — متتبَّعة في
سجلات وحدة الاختبارات. المرجع الكامل: الاختبارات.
الطبقة 11 — الدرجات والتقارير
ExamResult + Result
← ReportCard (لكل طالب لكل فصل دراسي) ← ReportCardGrade (لكل مادة)
├─ شهادة PDF (محرّك تركيبي، 4 قوالب إقليمية) — جاهز للإنتاج
├─ السجل الأكاديمي (لقطة مجمّدة متعددة السنوات، تحقق QR)
├─ إشعارات (grade_posted، report_ready، certificate_issued، promotion_decided)
└─ الترفيع / الإبقاء ← Student.academicGradeId
الترفيع يعمل لكل صف (PromotionPolicy بـgradeId): تقييم دفعة ← المعدل +
المواد الراسبة + نسبة الحضور (الطبقة 9 تغذّي الطبقة 11) ← مراجعة إدارية ←
تنفيذ (StudentYearLevel، إعادة إسناد الصف) ← إشعار.
فجوة معروفة: مقياسا DEFAULT_BOUNDARIES مختلفان (تقارير 9 درجات مقابل درجات 12
درجة) عندما لا يوجد SchoolGradingConfig — وحّدهما قبل الاعتماد على الدرجات
الحرفية.
الطبقة 12 — الوحدات التابعة
كل وحدة تستهلك محوراً مختلفاً من النواة الأكاديمية:
| الوحدة | تستهلك | الاقتران |
|---|---|---|
| البث المباشر | sectionId (الأهلية + التوزيع)، timetableId، termId | مبني على الشُعب |
| النقل | studentId فقط (مسارات، صعود) | منفصل عن الشُعب/الجدول |
| LMS (Lumos) | catalogSubjectId (تسجيل لكل مادة فهرس) | مبني على الفهرس لا الشُعب |
| المكتبة | schoolId فقط (تبنّي كتب عالمي-أولاً) | منفصل تماماً |
| المالية | studentId (إسناد رسوم)، تجميع اختياري بالصف | مبني على الطلاب |
| الرسائل/واتساب | مجموعات Section | مبني على الشُعب |
لا شيء منها يعطّل السلسلة الأكاديمية؛ كلٌّ يُفعَّل مستقلاً باكتمال إعداده.
أنماط الفشل
| الناقص | يعطّل |
|---|---|
| الفهرس | اختيار المواد، توليد الجدول |
| البنية الأكاديمية | اختيار المواد، الشُعب |
| الفصول الدراسية | الجدول (تظهر المسودّة)، وضع الحصص في الحضور |
| الشُعب | توليد الجدول، كشوف الحضور، التنسيب |
SubjectSelection | توليد الجدول (No sections have subjects) |
| حصص الجدول | وضع الحصص في الحضور، نطاق المعلم، البث-من-الحصة |
SubjectTeacher | تظهر حصص الجدول «بانتظار معلم» |
| الاختبارات/النتائج | بطاقات التقارير، السجلات الأكاديمية |
| بطاقات التقارير | الترفيع (المعدل مطلوب) |
أنماط فشل التهيئة وفحص الجاهزية في التهيئة.
انظر أيضاً
- التهيئة — محرّك التهيئة التلقائية، والتقويمات المدركة للفصول، والطبيب
- التهيئة الأولى
- الفهرس
- القبول
- الحضور
- تعدد المستأجرين
On This Page
الطبقاتالطبقة 1 — الفهرس العامالطبقة 2 — التهيئة الأولىهياكل الجدولالطبقة 3 — البنية الأكاديميةالطبقة 4 — اختيار الموادالطبقة 5 — الجدولة (مدركة للفصول الدراسية)الطبقة 6 — القاعات والشُعبلا محور مقررات (أُزيلClass)الطبقة 7 — الجدولالطبقة 8أ — إسناد المعلمينالطبقة 8ب — تنسيب الطلابالطبقة 9 — الحضورالطبقة 10 — الاختباراتالطبقة 11 — الدرجات والتقاريرالطبقة 12 — الوحدات التابعةأنماط الفشلانظر أيضاً