0%
balqalam Logo
بالقلم
المميزاتالمجتمعالتسعيرالوثائق
تسجيل الدخول
  • مقدمة
  • مركز المساعدة
  • أسئلة شائعة
  • ابدأ الآن
  • البيئة المحلية
  • البنية المعمارية
  • الهيكل
  • الأنماط
  • الحزمة التقنية
  • قاعدة البيانات
  • تعدّد المستأجرين
  • الفهرس (Catalog)
  • العمل دون اتصال
  • المصادقة
  • التهيئة (Onboarding)
  • تدفق التكامل (Integration Flow)
  • التهيئة (Provision)
  • القبول
  • الحضور
  • الامتثال التنظيمي
  • الملف الشخصي
  • الاجتماعات
  • إدارة الرسوم
  • الفاتورة
  • التدويل
  • الترجمة
  • دليل الترجمة
  • أمان قاعدة البيانات
  • المساهمة
  • الإلهام
  • المالية
  • النقل

تدفق التكامل (Integration Flow)

السابقالتالي

سلسلة الطبقات من الفهرس العام إلى مدرسة تعمل — البنية الأكاديمية، والجدولة المدركة للفصول الدراسية، والشُعب، والجدول المبني على الشُعب، والأشخاص، والحضور، والاختبارات، والدرجات والتقارير، والوحدات التابعة التي تستهلكها.

تمرّ كل مدرسة بسلسلة الاعتماديات نفسها. معظم الطبقات تُهيّأ تلقائياً لحظة اكتمال التهيئة الأولى — آلية التهيئة (المراحل، وإعادة التشغيل الآمن، وطبيب الإصلاح، ومحرّك التقويم المدرك للفصول الدراسية) موثّقة في التهيئة؛ هذه الصفحة هي الخريطة.

الترتيب يجسّد فكرة مقصودة واحدة: الجدول يأتي قبل الأشخاص. الجدول قابل للاشتقاق من البنية وحدها (صفوف × مواد × شُعب × جدولة)، فيُولَّد بلا معلمين. ثم يوضع الطلاب في الشُعب، ويُسند المعلمون إلى المواد — ويتدفق الحضور والاختبارات والدرجات والتقارير من هناك.

الطبقات

الطبقةالاسمما تنشئهتعتمد على
1الفهرس العامSubject (لكل صف) ← فصول ← دروس—
2التهيئة الأولىملف المدرسة + مشغّل التهيئة1
3البنية الأكاديميةAcademicLevel، AcademicGrade، AcademicStream2
4اختيار الموادصفوف جسر SubjectSelection (صف ↔ فهرس)1، 3
5الجدولةSchoolYear، وTerm ×N (مدرك للتقويم)، وPeriod، وSchoolWeekConfig2
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، جلسات، تصحيح، ExamResult4، 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 (معرّف الهيكل)الحصص، أيام الدوام، تجاوز التقويم
محسوبالمعادلة
maxClassesgrades × sectionsPerGrade
maxStudentsmaxClasses × 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، واحتياطي عام):

النموذجالحقول الأساسية
AcademicLevellevel، levelOrder، startGrade، endGrade
AcademicGradegradeNumber، levelId، yearLevelId
AcademicStreamstreamType (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إشراف تربوي، لكل شعبة
عضو/رئيس قسمTeacherDepartmentisPrimary، 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تظهر حصص الجدول «بانتظار معلم»
الاختبارات/النتائجبطاقات التقارير، السجلات الأكاديمية
بطاقات التقاريرالترفيع (المعدل مطلوب)

أنماط فشل التهيئة وفحص الجاهزية في التهيئة.

انظر أيضاً

  • التهيئة — محرّك التهيئة التلقائية، والتقويمات المدركة للفصول، والطبيب
  • التهيئة الأولى
  • الفهرس
  • القبول
  • الحضور
  • تعدد المستأجرين
التهيئة (Onboarding)التهيئة (Provision)

On This Page

الطبقاتالطبقة 1 — الفهرس العامالطبقة 2 — التهيئة الأولىهياكل الجدولالطبقة 3 — البنية الأكاديميةالطبقة 4 — اختيار الموادالطبقة 5 — الجدولة (مدركة للفصول الدراسية)الطبقة 6 — القاعات والشُعبلا محور مقررات (أُزيل Class)الطبقة 7 — الجدولالطبقة 8أ — إسناد المعلمينالطبقة 8ب — تنسيب الطلابالطبقة 9 — الحضورالطبقة 10 — الاختباراتالطبقة 11 — الدرجات والتقاريرالطبقة 12 — الوحدات التابعةأنماط الفشلانظر أيضاً

من تطوير Databayt ·

مرحباً بك في بالقلم.

رحلة عظيمة على وشك أن تبدأ.