0%
balqalam Logo
بالقلم
المميزاتالمجتمعالتسعيرالوثائق
تسجيل الدخول
  • مقدمة
  • العرض
  • MVP
  • خارطة الطريق
  • متطلبات المنتج
  • ابدأ الآن
  • البيئة المحلية
  • البنية المعمارية
  • الهيكل
  • الأنماط
  • الحزمة التقنية
  • قاعدة البيانات
  • تعدّد المستأجرين
  • الفهرس (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 (+ StudentClass لمحور دفتر الدرجات)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)

منفصلاً عن الشُعب، الـClass هو مقرر-مادة واحد (Math – Grade 7، لكل فصل دراسي) — محور التجميع المُقلَّل الأهمية الذي يحتاجه دفتر الدرجات. أُزيلت إجراءات "توليد المقررات من الكتالوج" و"تسجيل الطلاب" من القاعات ← الإعداد (2026-06-18): تبقى القاعات رشيقة (صفوف ← شُعب ← قاعة رئيسية واحدة)، ولأن الصف + المنهج يحدّدان المواد سلفاً، تُدار Class/StudentClass في وحدة الفصول لا من صفحة الغرف. الجدول لم يعد يتطلب سجلات Class؛ الاختبارات والنتائج والواجبات ما تزال (عمداً — راجع سياسة classId القديم).

الطبقة 7 — الجدول

الحصص مبنية على الشُعب:

Timetable {
  schoolId, termId, dayOfWeek, periodId,
  sectionId,   // مَن (المجموعة)        — أساسي
  subjectId,   // ماذا
  classroomId, // أين
  teacherId,   // مَن يدرّس — قابل للفراغ، يُسند لاحقاً
  classId,     // صفوف قديمة فقط — يُملأ sectionId عند التحرير
  weekOffset
}

ثلاثة قيود فرادة تمنع الحجز المزدوج (الشعبة والقاعة والمقرر القديم لكل حصة-فترة). التوليد التلقائي يوزّع مواد كل صف (weeklyPeriods لكلٍ) على أيام الدوام × الحصص التدريسية في قاعة الشعبة، بلا معلمين. التحرير اليدوي في الشبكة شعبة-أولاً أيضاً: اختر الشعبة + المادة (+ المعلم عند معرفته).

يرتّب getRecommendedStructures التوزيعات عند التهيئة الأولى؛ وإن لم توجد فصول دراسية بعد، تعرض الشبكة مسودّة غير محفوظة مع زر تهيئة للمدير.

الطبقة 8أ — إسناد المعلمين

يرتبط المعلمون بـالمواد، ثم بـالحصص:

الدورأينالوصف
خبير مادةTeacherSubjectExpertiseالتأهيل لكل مادة (expertiseLevel)
معلم الحصةTimetable.teacherIdمن يدرّس هذه الشعبة-الفترة
رائد الفصلSection.homeroomTeacherIdإشراف تربوي، لكل شعبة
عضو/رئيس قسمTeacherDepartmentisPrimary، isDepartmentHead
معلم مقررClass.teacherId + ClassTeacherمحور المقررات (دفتر الدرجات، co-teaching)

يُحظر deleteTeacher ما دامت مراجع Class.teacherId أو Timetable موجودة؛ ويُحظر deleteSubject على مراجع الخبرة أو المقررات أو الاختبارات أو بنك الأسئلة.

الطبقة 8ب — تنسيب الطلاب

معالج القبول ذو الخمس خطوات ينتهي بـADMITTED ← التنسيب:

  • placement-dialog.tsx (لكل طالب) وbulk-placement.tsx (دفعة) كلاهما يستدعي placeStudentInSection(applicationId, sectionId) — يتحقق من maxCapacity، يضبط Student.sectionId (التنسيب التشغيلي)، ثم — فقط عندما تكون الشعبة مرتبطة بـAcademicGrade — ينشئ صفوف StudentClass لمقررات الصف ويزامن Enrollment في LMS. الشعبة بلا gradeId تحصل على التنسيب لكنها تتخطى مزامنة المقررات وLMS بصمت.
  • عبر الشعبة يرث الطالب القاعة والجدول وكشف الحضور. وعبر StudentClass يظهر في دفاتر الدرجات والاختبارات.
  • يفسّر extractGradeNumber() في src/lib/grade-utils.ts الصفوف الحرة النص ("Grade 5"، "5th grade"، "الصف الخامس").

الطبقة 9 — الحضور

الحضور مبني على الشُعب: الكشف هو Student.sectionId (لا StudentClass)، ووضع الحصص يضيء مباشرة من الجدول —

  • نطاق المعلم: يستطيع المعلم تسجيل الشُعب التي له فيها حصص جدول (أو ريادة فصل).
  • الاختيار التلقائي للحصة الحالية: الـPeriod النشطة × حصة المعلم تحسم الشعبة تلقائياً.
  • تسجيل الحصص يكتب sectionId + periodId + timetableId؛ وتسجيل اليوم الكامل يعمل بلا جدول إطلاقاً.
  • صفوف classId القديمة تبقى تاريخاً للقراءة فقط.

الحالة: ~92%، مقوّى للإنتاج (تدقيق أمني 2026-06-02، 575 اختباراً أخضر). الامتثال (ADEK eSIS) يصدّر سجلات الوضع اليومي. المرجع الكامل: الحضور.

الطبقة 10 — الاختبارات

كومة التقييم تعمل على محور المقررات (classId + subjectId):

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 (إسناد رسوم)، classId? تجميع اختياريمبني على الطلاب
الرسائل/واتسابمجموعات Section + مجموعات Classكلا المحورين

لا شيء منها يعطّل السلسلة الأكاديمية؛ كلٌّ يُفعَّل مستقلاً باكتمال إعداده.

أنماط الفشل

الناقصيعطّل
الفهرساختيار المواد، توليد الجدول
البنية الأكاديميةاختيار المواد، الشُعب
الفصول الدراسيةالجدول (تظهر المسودّة)، وضع الحصص في الحضور
الشُعبتوليد الجدول، كشوف الحضور، التنسيب
SubjectSelectionتوليد الجدول (No sections have subjects)
حصص الجدولوضع الحصص في الحضور، نطاق المعلم، البث-من-الحصة
StudentClassدفاتر الدرجات، تسجيل الاختبارات (لا الجدول — الشعبة تغطيه)
الاختبارات/النتائجبطاقات التقارير، السجلات الأكاديمية
بطاقات التقاريرالترفيع (المعدل مطلوب)

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

انظر أيضاً

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

On This Page

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

من تطوير Databayt ·

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

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