> ## Content Index
> Fetch the complete content index at: https://arabroot.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# نظام شؤون الطلاب SIS المفتوح: Gibbon أم RosarioSIS
- URL: https://arabroot.io/articles/نظام-شؤون-الطلاب-gibbon-ام-rosariosis-ام-odoo/
- Published: 2026-10-14T11:15:00.000Z
- Updated: 2026-10-25T08:50:19.000Z
- Description: جربنا Gibbon وRosarioSIS بالعربية على Docker، وقارناهما بنظام OpenEduCat فوق Odoo، لتختار نظام شؤون الطلاب المناسب لمدرستك.
- Author: فريق عرب رووت
- Tags: الأدلة التقنية, التعليم والبحث العلمي, تطبيقات لفريقك, الاستضافة الذاتية, RosarioSIS

أغلب المدارس الخاصة الصغيرة تدير شؤون طلابها في ملفات Excel: ملف للطلاب وأولياء الأمور، وملف للحضور يرسله كل معلم، وملف للدرجات يجمعه الوكيل في نهاية الفصل، ثم يكتشف أحدهم أن اسم الطالب مكتوب بطريقتين في ملفين، وأن ملف الحضور الذي عدله المعلم أمس ليس النسخة التي عند الإدارة. في مقال [الأنظمة التي تحتاجها الجامعة](https://arabroot.io/articles/%D8%A7%D9%84%D8%A7%D9%86%D8%B8%D9%85%D8%A9-%D8%A7%D9%84%D8%AA%D9%8A-%D8%AA%D8%AD%D8%AA%D8%A7%D8%AC%D9%87%D8%A7-%D8%A7%D9%84%D8%AC%D8%A7%D9%85%D8%B9%D8%A9-%D9%85%D9%86-%D8%A7%D9%84%D9%82%D8%A8%D9%88%D9%84-%D8%A7%D9%84%D9%89-%D8%A7%D9%84%D8%AA%D8%AE%D8%B1%D8%AC/#sis) ذكرنا أن نظام معلومات الطلاب Student Information System واختصاراً SIS هو مركز بقية الأنظمة، وفي هذا المقال سوف نجرب خيارين مفتوحي المصدر للمدارس على Docker، ونقارنهما بخيار ثالث يعمل فوق Odoo، وسوف نتناول:

- ما الذي يحفظه نظام شؤون الطلاب، وأين ينتهي دوره ويبدأ دور منصة التعلم LMS.
- تثبيت RosarioSIS 13.0.1 بال Docker Image الذي ينشره مطوره، مع الواجهة العربية، وإضافة طالب.
- تثبيت Gibbon 30.0.01 من حزمة التثبيت الرسمية، مع العربية، وإضافة طالب.
- OpenEduCat، وهو وحدات تعليمية فوق Odoo، ومتى يكون هو الخيار الأنسب.
- نقاط القوة ونقاط الضعف لكل نظام، وجدول للاختيار.

## ما الذي يحفظه نظام شؤون الطلاب SIS؟

نظام شؤون الطلاب هو السجل الرسمي للطالب في المدرسة: من هو، وفي أي صف وشعبة، ومن ولي أمره، ومتى حضر وغاب، وما درجته النهائية في كل مادة، وما رسومه. وأما ما يحدث داخل المقرر يوماً بيوم، من دروس وواجبات واختبارات، فهو عمل منصة التعلم كما في دليل [تثبيت Moodle](https://arabroot.io/articles/%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-moodle-%D9%85%D9%86%D8%B5%D8%A9-%D8%A7%D9%84%D8%AA%D8%B9%D9%84%D9%85-%D8%B9%D9%84%D9%89-%D8%B3%D9%8A%D8%B1%D9%81%D8%B1%D9%83/). والصورة التالية تبين الحد بينهما:

![مخطط الحد بين نظام شؤون الطلاب SIS ومنصة التعلم LMS: في ال SIS الطلاب وأولياء الأمور والمعلمون، والقبول والتسجيل في الصفوف والشعب، والجدول الدراسي والقاعات، والحضور والغياب، والدرجات النهائية والسجل الأكاديمي، والسلوك والرسوم، والتقارير للإدارة والجهات الرسمية، وفي ال LMS المحتوى والدروس والواجبات والاختبارات والمنتديات وسجل درجات المقرر وحزم SCORM وأدوات LTI، ومن ال SIS إلى ال LMS الطلاب والشعب والمعلمون عبر OneRoster أو CSV، ومن ال LMS إلى ال SIS الدرجة النهائية للمقرر عبر CSV أو API، وفي الأسفل الأنظمة الثلاثة Gibbon بلغة PHP 8 مع MySQL 8 بترخيص GPL-3.0، وRosarioSIS بلغة PHP 8.1 مع PostgreSQL بترخيص GPL-2.0، وOpenEduCat وحدات فوق Odoo بلغة Python مع PostgreSQL بترخيص LGPL-3](https://arabroot.io/content/images/2026/10/open-source-sis-01-sis-lms.webp)

ال SIS مصدر الحقيقة للطالب والشعبة والدرجة النهائية، وال LMS يأخذ منه ويعيد إليه

وقد يتساءل البعض: أليس في Moodle نفسه طلاب وصفوف ودرجات، فلماذا نظام آخر؟ والإجابة أن ال LMS يعرف الطالب داخل المقررات فقط، فلا يعرف ولي الأمر ولا الحضور اليومي للمدرسة كلها ولا السجل الأكاديمي عبر السنوات ولا الرسوم، وإذا جعلته المصدر لهذه البيانات فسوف تعود إلى ملفات Excel بجانبه. والجداول الدراسية نفسها يمكن أن تبنيها أداة متخصصة ثم تدخلها في ال SIS، كما في مقال [الجدول الدراسي مع FET](https://arabroot.io/articles/%D8%A8%D9%86%D8%A7%D8%A1-%D8%A7%D9%84%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D8%AF%D8%B1%D8%A7%D8%B3%D9%8A%D8%A9-%D9%88%D8%AA%D9%88%D8%B2%D9%8A%D8%B9-%D8%A7%D9%84%D9%82%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AA%D9%84%D9%82%D8%A7%D8%A6%D9%8A%D8%A7-%D9%85%D8%B9-fet/).

## ثلاثة خيارات مفتوحة المصدر

الخيارات المفتوحة لنظام شؤون الطلاب كثيرة، ولكن أغلبها توقف تطويره أو صمم لنظام تعليمي محدد، والثلاثة التالية نشطة حتى أكتوبر 2026، ولكل منها طريقة مختلفة:

| النظام                                                                                | آخر إصدار عند التجربة                | التقنية            | الترخيص | جربناه                |
| ------------------------------------------------------------------------------------- | ------------------------------------ | ------------------ | ------- | --------------------- |
| [RosarioSIS](https://www.rosariosis.org/?ref=arabroot.io)                             | 13.0.1 (12 أكتوبر 2026)              | PHP وPostgreSQL    | GPL-2.0 | نعم                   |
| [Gibbon](https://gibbonedu.org/?ref=arabroot.io)                                      | 30.0.01 (6 فبراير 2026)              | PHP وMySQL         | GPL-3.0 | نعم                   |
| [OpenEduCat](https://github.com/openeducat/openeducat%5Ferp?ref=arabroot.io) على Odoo | الفرع 20.0 (آخر تعديل 9 أكتوبر 2026) | Python وPostgreSQL | LGPL-3  | لا، من الكود والتوثيق |

ولاحظ أن الاسم الذي يبحث عنه الناس «Odoo Education» ليس تطبيقاً رسمياً في Odoo Community، وإنما المقصود غالباً OpenEduCat، وهو مشروع مستقل يبني وحداته فوق Odoo.

## RosarioSIS

RosarioSIS نظام لإدارة المدرسة يطوره François Jacquet، ويغطي الطلاب والمستخدمين والجدولة والدرجات والحضور والانضباط والمحاسبة ورسوم الطلاب والمقصف، والمطور نفسه ينشر [ملفات Docker](https://github.com/francoisjacquet/docker-rosariosis?ref=arabroot.io) و[Docker Image](https://hub.docker.com/r/rosariosis/rosariosis?ref=arabroot.io) على Docker Hub. والوسم الوحيد المنشور هناك هو `master`، ويتغير مع كل إصدار، لذلك ثبتناه بالبصمة التي جربناها، وفيها الإصدار 13.0.1 مع PHP 8.1.34، وملف README يطلب PostgreSQL 15.

### التثبيت على Docker

أنشئ الملف `compose.yaml` التالي:

```yaml
name: edu5-sis-rosario
services:
  db:
    image: postgres:15.19
    container_name: edu5-sis-rosario-db
    restart: unless-stopped
    mem_limit: 384m
    environment:
      POSTGRES_USER: rosario
      POSTGRES_PASSWORD: change-me-db
      POSTGRES_DB: rosariosis
    volumes:
      - rdb:/var/lib/postgresql/data

  web:
    image: rosariosis/rosariosis@sha256:9aaa979b937c47032f1516a83a5393affe30ccef04b2bdcfe1ecd4c99e7e2c65
    container_name: edu5-sis-rosario-web
    restart: unless-stopped
    mem_limit: 512m
    depends_on: [db]
    environment:
      PGHOST: db
      PGUSER: rosario
      PGPASSWORD: change-me-db
      PGDATABASE: rosariosis
      ROSARIOSIS_YEAR: 2026
      ROSARIOSIS_LANG: ar_AE
      ROSARIOSIS_ADMIN_EMAIL: admin@example.com
    ports:
      - "127.0.0.1:31180:80"
    volumes:
      - rweb:/var/www/html

volumes:
  rdb:
    name: edu5-sis-rosario-db
  rweb:
    name: edu5-sis-rosario-web
```

ثم شغله وأنشئ قاعدة البيانات بالصفحة `InstallDatabase.php`:

```bash
docker compose up -d
curl -s http://127.0.0.1:31180/InstallDatabase.php | sed 's/<[^>]*>/ /g' | tr -s ' \n' | tail -c 80
```

```text
Success: database installed. Access RosarioSIS
```

في الإعداد أعلاه لاحظ التالي:

- **اللغة:** المتغير `ROSARIOSIS_LANG` بالقيمة `ar_AE` يجعل سكربت البداية يولد إعداد اللغة Locale العربي داخل ال Container، فالمشروع فيه ترجمتان عربيتان `ar_AE` و`ar_DZ`. وصفحة إنشاء قاعدة البيانات تعرض ترجمة بيانات القاعدة نفسها إلى الفرنسية والبرتغالية والروسية والإسبانية والأوكرانية فقط، فبيانات المثال مثل «Default School» و«Quarter 1» تبقى بالإنجليزية حتى تغيرها.
- **الدخول الأول:** اسم المستخدم وكلمة المرور الافتراضيان هما `admin` و`admin` كما في ملف README، فغير كلمة المرور قبل أن يصل أي شخص إلى الصفحة.
- **رسائل عند التشغيل:** سجل ال Container في البصمة التي جربناها يطبع تحذيرين: `Unable to load dynamic library 'gd'` بسبب غياب `libwebp.so.7`، و`Unable to load dynamic library 'zip'` بسبب غياب `libzip.so.4`. أي أن إضافتي الصور والملفات المضغوطة في PHP لا تعمل في هذا ال Image، والنظام فتح وأضاف الطالب دونهما، ولكن جرب رفع صورة طالب وتصدير الملفات قبل الاعتماد عليه، أو ابن ال Image بنفسك من ملفات Docker نفسها.
- **الموارد:** بعد التثبيت كانت الذاكرة المستخدمة 43MB لسيرفر الويب و39MB لقاعدة البيانات، وفي القاعدة 100 جدول.

### الواجهة بالعربية وإضافة طالب

بعد الدخول تنقلب الواجهة إلى اليمين، والقوائم مترجمة في أغلبها، والصورة التالية للوحة البداية:

![لوحة البداية في RosarioSIS بالعربية من اليمين إلى اليسار: القائمة الجانبية فيها المدرسة والطلاب والمستخدمين والجدولة والدرجات والحضور والأنشطة والانضباط والمحاسبة والفواتير الطالب وخدمة الغذاء والموارد، وفوقها Default School والسنة 2026-2027 وQuarter 2، وفي الوسط عنوان Rosario Student Information System ولوحة DASHBOARD فيها أعداد المدرسة والطلاب والمستخدمين والجدولة والأنشطة، وفي الأسفل الإصدار 13.0.1](https://arabroot.io/content/images/2026/10/open-source-sis-02-rosario-dashboard.webp)

لوحة البداية في RosarioSIS: الواجهة عربية من اليمين، وبيانات المثال بالإنجليزية

ثم أضفنا طالباً من «الطلاب» ثم «إضافة طالب» باسم عربي:

![نموذج إضافة طالب في RosarioSIS: الاسم الأول خالد والاسم الأخير العتيبي، واسم المستخدم khalid.s وكلمة المرور، ثم حقول Common Name وEthnicity وGender وBirthdate وSocial Security وLanguage بالإنجليزية، ومستوى الصف 1st والتقويم Main، وتاريخ بدء الحضور 21 أكتوبر 2026](https://arabroot.io/content/images/2026/10/open-source-sis-03-rosario-add-student.webp)

نموذج إضافة طالب: الحقول الأساسية مترجمة، والحقول المخصصة مثل Social Security وEthnicity بالإنجليزية

وبعد الحفظ ظهر الطالب في القائمة، والاسم العربي محفوظ صحيحاً في PostgreSQL، وتأكدنا من ذلك بالاستعلام:

```bash
docker exec edu5-sis-rosario-db psql -U rosario -d rosariosis -c "select student_id, first_name, last_name, username from students;"
```

```text
 student_id | first_name | last_name | username
------------+------------+-----------+----------
          1 | Student    | Student   | student
          2 | خالد       | العتيبي   | khalid.s
(2 rows)
```

![قائمة معلومات الطالب في RosarioSIS: طالبان، Student S Student بمستوى 6th ورقم 1، وخالد العتيبي بمستوى 1st ورقم 2، وفوق الجدول عبارة الطالب 2 were found مختلطة بين العربية والإنجليزية، والقائمة الجانبية مفتوحة على الطلاب وفيها Remove Access بالإنجليزية](https://arabroot.io/content/images/2026/10/open-source-sis-04-rosario-students.webp)

قائمة الطلاب: «2 الطالب were found.» وRemove Access أمثلة على نصوص لم تترجم

وما وجدناه في العربية يستحق أن تجمعه في قائمة قبل أن يراه الموظفون:

- **نصوص غير مترجمة:** «Remove Access» و«Historical Grades» في القائمة، و«were found» في عبارة عدد النتائج.
- **ترجمة حرفية خاطئة:** «لفة الشرف» لقائمة الشرف Honor Roll، و«برنامج العمل العالمي/فئة قائمة مرتبة» لما هو في الأصل المعدل التراكمي وترتيب الطالب GPA / Class Rank.
- **حقول من بيئة أخرى:** نموذج الطالب يأتي بحقول مثل Social Security وEthnicity، وهي حقول مخصصة Custom Fields يمكنك أن تغير اسمها أو تحذفها من «حقول الطالب».

والترجمة ملفات `.po` في مجلد `locale/ar_AE.utf8`، فتعديلها ممكن بأي محرر ترجمة، وإرسال التعديل إلى المشروع أفضل من أن تبقيه عندك.

### نقاط القوة ونقاط الضعف

**نقاط القوة:**

- تثبيت سريع بال Docker Image الذي ينشره المطور، وخفيف على الموارد.
- يغطي أغلب ما تحتاجه المدرسة في نظام واحد: الطلاب والجدولة والدرجات والحضور والرسوم والانضباط.
- PostgreSQL، وهي قاعدة بيانات تعرفها فرق التقنية جيداً في النسخ الاحتياطي والتقارير.
- إصدارات متتالية، وآخرها قبل أيام من التجربة.

**نقاط الضعف:**

- ال Image المنشور بوسم واحد متحرك `master`، وفيه إضافتان لا تعملان في البصمة التي جربناها.
- الترجمة العربية فيها نصوص ناقصة وترجمات حرفية، وبيانات المثال لا تترجم.
- يطوره شخص واحد في الأساس، ويبيع إضافات مدفوعة Premium add-ons كما في موقعه، فراجع هل ما تحتاجه في النسخة المجانية قبل أن تقرر.

## Gibbon

Gibbon منصة مدرسية بدأها Ross Parker في مدرسة في هونغ كونغ، وتغطي الطلاب والموظفين والجدول والحضور والتقييم والرعاية التربوية والتخطيط للدروس، و[ملاحظات الإصدار 30.0.01](https://github.com/GibbonEdu/core/releases/tag/v30.0.01?ref=arabroot.io) تذكر أن الحد الأدنى أصبح PHP 8.0 وMySQL 8.0\. ولا يوجد Docker Image رسمي، والمشروع ينشر حزمة تثبيت Install Bundle فيها الكود مع مكتباته، حجمها 90MB، لذلك بنينا Image بأنفسنا على PHP 8.3 مع Apache.

### التثبيت على Docker

ضع الحزمة `gibbon-v30.0.01.tar.gz` من صفحة الإصدار بجانب الملف `Dockerfile` التالي:

```dockerfile
FROM php:8.3.36-apache-trixie
RUN apt-get update && apt-get install -y --no-install-recommends libicu-dev libzip-dev libpng-dev libjpeg-dev libfreetype-dev locales \
  && docker-php-ext-configure gd --with-freetype --with-jpeg \
  && docker-php-ext-install -j3 pdo_mysql gettext intl zip gd \
  && echo "ar_SA.UTF-8 UTF-8" >> /etc/locale.gen && echo "en_GB.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen \
  && rm -rf /var/lib/apt/lists/*
RUN a2enmod rewrite && { echo "max_input_vars = 5000"; echo "memory_limit = 256M"; echo "upload_max_filesize = 20M"; echo "post_max_size = 21M"; } > /usr/local/etc/php/conf.d/gibbon.ini
COPY gibbon-v30.0.01.tar.gz /tmp/
RUN tar xzf /tmp/gibbon-v30.0.01.tar.gz -C /var/www/html && rm /tmp/gibbon-v30.0.01.tar.gz \
  && mkdir -p /var/www/html/uploads && chown -R www-data:www-data /var/www/html
```

ثم `compose.yaml`، وقاعدة البيانات MySQL بترميز `utf8mb4` حتى تحفظ العربية:

```yaml
name: edu5-sis-gibbon
services:
  db:
    image: mysql:8.4.11
    container_name: edu5-sis-gibbon-db
    restart: unless-stopped
    mem_limit: 640m
    environment:
      MYSQL_DATABASE: gibbon
      MYSQL_USER: gibbon
      MYSQL_PASSWORD: change-me-db
      MYSQL_ROOT_PASSWORD: change-me-root
    command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
    volumes:
      - gdb:/var/lib/mysql

  web:
    image: edu5-gibbon:30.0.01
    container_name: edu5-sis-gibbon-web
    restart: unless-stopped
    mem_limit: 512m
    depends_on: [db]
    ports:
      - "127.0.0.1:31280:80"
    volumes:
      - gweb:/var/www/html

volumes:
  gdb:
    name: edu5-sis-gibbon-db
  gweb:
    name: edu5-sis-gibbon-web
```

```bash
docker build -t edu5-gibbon:30.0.01 .
docker compose up -d
```

### نجرب العطل: معالج التثبيت والموجه mod\_rewrite

التثبيت من المتصفح على العنوان `/installer/install.php` بثلاث خطوات: متطلبات النظام ولغة النظام، ثم بيانات قاعدة البيانات، ثم حساب المسؤول وإعدادات المدرسة. وفي أول نسخة من ملف `Dockerfile` لم يكن فيها الأمر `a2enmod rewrite`، فعرضت الخطوة الأولى «Not ready to install.»، وأمام «Apache Module mod\_rewrite» القيمة «Not Available»، فالمعالج يفحص المتطلبات قبل أن يسمح بالمتابعة، ولهذا السبب أضفنا السطر. وفي الصفحة نفسها فحص «Secure HTTPS Connection»، وهو لا يمنع التثبيت ولكنه يذكرك أن الإنتاج يحتاج HTTPS أمام النظام كما في [تثبيت Caddy](https://arabroot.io/articles/%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-caddy-reverse-proxy/).

واخترنا في الخطوة الأولى العربية بالرمز `ar_SA` من قائمة اللغات، وفي الخطوة الثانية لا تختر بيانات المثال Demo Data في الإنتاج، وهذه الخطوة تنشئ 208 جداول وتأخذ دقائق، فلا تغلق الصفحة. وفي الخطوة الثالثة انتبه إلى خيارين مفعلين افتراضياً:

- **Statistics Collection:** يرسل إلى مشروع Gibbon عنوان الموقع ونوع التثبيت واسم المدرسة، كما تقول الصفحة نفسها.
- **Receive Support?:** يضيف بريد المسؤول إلى القائمة البريدية للمشروع.

عطلنا الاثنين، لأن قرار إرسال اسم المدرسة إلى طرف خارجي قرار للإدارة وليس لمن يثبت النظام. وبعد التثبيت تأكدنا من الإعدادات في قاعدة البيانات:

```text
code	name	systemDefault	installed	rtl
ar_SA	العربية - المملكة العربية السعودية	Y	Y	Y
name	value
timezone	Asia/Riyadh
country	Saudi Arabia
installType	Testing
statsCollection	N
currency	SAR ﷼‎
registerGibbonSupport	N
```

### الواجهة بالعربية وإضافة طالب

الحزمة العربية نزلت مع التثبيت، والعمود `rtl` قيمته `Y`، فانقلبت الواجهة إلى اليمين، وأغلب القوائم والنماذج مترجمة، مع نصوص قليلة بالإنجليزية مثل الملاحظة الزرقاء في أعلى نموذج إضافة المستخدم:

![نموذج إضافة مستخدم في Gibbon بالعربية من اليمين إلى اليسار: القائمة العلوية الرئيسية والمسؤول ورعاية تربوية والتقييم وتعلم والأشخاص وأخرى، وملاحظة زرقاء بالإنجليزية عن الحقول حسب الدور، ثم المعلومات الأساسية: العنوان فارغ، واللقب العتيبي، والاسم الأول خالد، والاسم المفضل خالد، والاسم الرسمي خالد سعد العتيبي، والقائمة الجانبية إدارة المستخدمين وإدارة الأسر وإدارة الأدوار](https://arabroot.io/content/images/2026/10/open-source-sis-05-gibbon-add-user.webp)

نموذج إضافة مستخدم في Gibbon: الحقل الأول «العنوان» ترجمة للكلمة Title، والمقصود اللقب مثل أ. أو د.

أضفنا الطالب بالدور «طالب»، وظهرت رسالة «تم الانتهاء من طلبك بنجاح»، ثم ظهر في قائمة المستخدمين:

![صفحة إدارة المستخدمين في Gibbon بالعربية: البحث، وزر إضافة، والسجلات 1 to 2 من 2، وجدول فيه Admin, Lab بالحالة كامل والدور مسؤول النظام واسم المستخدم admin، والعتيبي، خالد بالحالة كامل والدور طالب واسم المستخدم khalid.s، مع أزرار تعديل وحذف](https://arabroot.io/content/images/2026/10/open-source-sis-06-gibbon-users.webp)

قائمة المستخدمين: الاسم يعرض «العتيبي، خالد»، أي اسم العائلة أولاً

وما وجدناه في العربية وفي الإعدادات الافتراضية:

- **ترتيب الاسم:** القوائم تعرض اسم العائلة ثم فاصلة ثم الاسم الأول، وهذا مألوف في المدارس الدولية وغير مألوف في المدارس العربية، فراجع إعدادات عرض الأسماء قبل الطباعة.
- **أيام الأسبوع:** الجدول في لوحة البداية من الاثنين إلى الجمعة، وأسماء الأيام بالإنجليزية، فاضبط أيام الدراسة من الأحد إلى الخميس في إعدادات المدرسة إن كانت مدرستك كذلك.
- **المراحل الافتراضية:** الصفوف جاهزة من «السنة 7» إلى «السنة 13» على النظام البريطاني، فأعد تسميتها حسب مراحل مدرستك.
- **بقايا إنجليزية:** «View الواجب المنزلي» في لوحة البداية، و«1 to 2 السجلات» في عداد النتائج، ورسالة ملفات تعريف الارتباط Cookies.

### نقاط القوة ونقاط الضعف

**نقاط القوة:**

- واجهة حديثة، وترجمة عربية مع دعم اتجاه الكتابة من اليمين RTL من معالج التثبيت نفسه.
- أوسع من شؤون الطلاب: تخطيط الدروس والواجبات والتقييم والرعاية التربوية، وهو مناسب لمدرسة لا تريد LMS منفصلاً في البداية.
- خلفه مجتمع ومؤسسة Gibbon Foundation، وليس مطوراً واحداً.

**نقاط الضعف:**

- لا يوجد Docker Image رسمي، وتحتاج أن تبني بيئة PHP بنفسك وتعرف متطلباتها مثل mod\_rewrite.
- تصميمه الافتراضي للمدارس الدولية: المراحل وترتيب الأسماء وأيام الأسبوع تحتاج ضبطاً.
- خيارات إرسال البيانات إلى المشروع مفعلة افتراضياً في المعالج.

## OpenEduCat على Odoo

إذا كانت المؤسسة تستخدم Odoo أصلاً للمحاسبة والموارد البشرية، كما في دليل [تثبيت Odoo Community](https://arabroot.io/articles/%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-odoo-community-%D9%86%D8%B8%D8%A7%D9%85-erp-%D8%B9%D9%84%D9%89-%D8%B3%D9%8A%D8%B1%D9%81%D8%B1%D9%83/)، فإن OpenEduCat يضيف إليه الجانب التعليمي بوحدات Odoo عادية. والفرع 20.0 في [مستودع المشروع](https://github.com/openeducat/openeducat%5Ferp?ref=arabroot.io) فيه الوحدات التالية: الأساس `openeducat_core`، والقبول `openeducat_admission`، والحضور، والواجبات، والاختبارات، والرسوم، والمكتبة، والمرافق، والفصول، وأولياء الأمور، والأنشطة، والجدول الدراسي `openeducat_timetable`. وكل وحدة فيها ملف ترجمة عربية `ar_001.po`، والترخيص LGPL-3، و[صفحة التثبيت](https://doc.openeducat.org/administration/install.html?ref=arabroot.io) تشرح الطريقة.

ولم نثبت OpenEduCat في هذا المختبر، فما سبق من الكود والتوثيق، لذلك لا نقارن واجهته العربية بالنظامين السابقين. ولكن الفرق الأساسي واضح من بنيته: OpenEduCat ليس نظاماً مستقلاً، فالرسوم فيه فواتير Odoo، والموظفون موظفو Odoo، وهذا قوي إذا كان Odoo عندك، وثقيل إذا كنت تحتاج نظام مدرسة فقط.

**نقاط القوة:** تكامل مباشر مع محاسبة Odoo وموارده البشرية، ونموذج وحدات تضيف منه ما تحتاجه، والمشروع نشط ويتبع إصدارات Odoo.

**نقاط الضعف:** تحتاج خبرة في Odoo نفسه للتثبيت والترقية، وكل ترقية لإصدار Odoo تنتظر توافق الوحدات، والمشروع يبيع نسخة مؤسسية Enterprise بجانب النسخة المجتمعية، فتأكد أن الميزة التي تحتاجها في النسخة المجتمعية.

## أي نظام تختار؟

| الحالة                                                   | الأنسب                   | والسبب                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| -------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| مدرسة صغيرة أو متوسطة تريد البدء بسرعة وبموارد قليلة     | RosarioSIS               | Docker Image من المطور، وموارد قليلة، ويغطي الأساسيات والرسوم                                                                                                                                                                                                                                                                                                                                                                               |
| مدرسة تريد نظاماً واحداً للشؤون والتخطيط للدروس والتقييم | Gibbon                   | أوسع في الجانب التعليمي، وترجمته العربية أنظف في تجربتنا                                                                                                                                                                                                                                                                                                                                                                                    |
| مؤسسة تستخدم Odoo للمحاسبة والموارد البشرية              | OpenEduCat               | الطالب والرسوم داخل النظام نفسه دون تكامل منفصل                                                                                                                                                                                                                                                                                                                                                                                             |
| جامعة                                                    | لا أحد من الثلاثة غالباً | الجامعة تحتاج خططاً دراسية وساعات معتمدة وتسجيلاً للمقررات، وهي أكبر مما صممت له هذه الأنظمة، كما في مقال [الأنظمة التي تحتاجها الجامعة](https://arabroot.io/articles/%D8%A7%D9%84%D8%A7%D9%86%D8%B8%D9%85%D8%A9-%D8%A7%D9%84%D8%AA%D9%8A-%D8%AA%D8%AD%D8%AA%D8%A7%D8%AC%D9%87%D8%A7-%D8%A7%D9%84%D8%AC%D8%A7%D9%85%D8%B9%D8%A9-%D9%85%D9%86-%D8%A7%D9%84%D9%82%D8%A8%D9%88%D9%84-%D8%A7%D9%84%D9%89-%D8%A7%D9%84%D8%AA%D8%AE%D8%B1%D8%AC/) |

وأياً كان اختيارك، فالنظام يحفظ بيانات أطفال وأولياء أمور، وفي السعودية يحكمها [نظام حماية البيانات الشخصية](https://dgp.sdaia.gov.sa/wps/portal/pdp/?ref=arabroot.io)، لذلك ضع أمامه HTTPS، وفعل التحقق الثنائي للمسؤولين إن وجد، وراجع الصلاحيات قبل أن تعطي المعلمين حسابات.

## التحقق من النجاح

- الطالب الذي أضفته يظهر في القائمة، والاسم العربي محفوظ كما هو في قاعدة البيانات، كما رأينا في الاستعلامين.
- في RosarioSIS افتح سجل ال Container بالأمر `docker logs`، وتأكد من رسائل الإضافات التي ذكرناها، وجرب رفع صورة طالب.
- في Gibbon افتح صفحة فحص النظام System Check بعد الدخول، كما تنصح صفحة الخطوة الأخيرة في المعالج.

## النسخ الاحتياطي والاستعادة

في النظامين القاعدة هي الأهم، ومعها مجلد الملفات المرفوعة. لRosarioSIS:

```bash
docker exec edu5-sis-rosario-db pg_dump -U rosario -Fc rosariosis > rosariosis-$(date +%F).dump
```

ولGibbon، مع مجلد `uploads` داخل ال Volume:

```bash
docker exec edu5-sis-gibbon-db sh -c 'mysqldump --single-transaction -ugibbon -p"$MYSQL_PASSWORD" gibbon' > gibbon-$(date +%F).sql
docker run --rm -v edu5-sis-gibbon-web:/src:ro -v "$PWD":/backup alpine tar czf /backup/gibbon-uploads-$(date +%F).tgz -C /src uploads
```

والاستعادة عكس ذلك: `pg_restore` أو `mysql` في قاعدة فارغة، ثم فك مجلد الملفات، وجرب الاستعادة على سيرفر اختبار مرة كل فصل دراسي، لأن النسخة التي لم تجرب استعادتها غير مضمونة.

## التحديث إلى إصدار أحدث

- **RosarioSIS:** خذ نسخة من القاعدة، ثم غير البصمة في `compose.yaml` إلى الإصدار الجديد، وسكربت البداية ينسخ الكود الجديد ويحتفظ بملف الإعداد، والنظام نفسه يقارن رقم الإصدار في القاعدة بالكود ويحدثها عند الدخول. وملف README ينبه إلى أن الانتقال إلى Debian 12 وPostgreSQL 15 منذ الإصدار 12.1.1 يحتاج ترقية القاعدة يدوياً.
- **Gibbon:** خذ نسخة، ثم ابن Image بالحزمة الجديدة، ثم ادخل بحساب المسؤول وشغل التحديث من صفحة التحديث في إدارة النظام، واقرأ ملاحظات الإصدار قبل ذلك لأن الحد الأدنى لإصدار PHP وMySQL يرتفع بين الإصدارات الرئيسية.

## مشكلات شائعة وحلولها

- **«Not ready to install» في Gibbon:** اقرأ قائمة المتطلبات في الصفحة نفسها، وفي تجربتنا كان السبب `mod_rewrite`.
- **الأسماء العربية تظهر علامات استفهام في سطر أوامر MySQL:** البيانات سليمة غالباً، والمشكلة في ترميز العميل، فأضف `--default-character-set=utf8mb4` إلى الأمر قبل أن تحكم.
- **بيانات المثال في RosarioSIS بالإنجليزية:** غير اسم المدرسة والفترات Marking Periods من قائمة المدرسة، فهي بيانات وليست ترجمة.
- **المعالج في Gibbon يتوقف في الخطوة الثانية:** إنشاء الجداول يأخذ دقائق على سيرفر بطيء، فلا تعد إرسال النموذج، والسبب أن الإرسال الثاني يبدأ على قاعدة فيها جداول من المحاولة الأولى.

## تنظيف المختبر

```bash
docker compose down -v
```

في مجلد كل نظام، ثم احذف ال Docker Images بأسمائها إذا لم تعد تحتاجها.

## الخلاصة

وصلنا لنهاية الموضوع، وأهم ما فيه:

- نظام شؤون الطلاب هو السجل الرسمي للطالب والشعبة والحضور والدرجة النهائية، وال LMS يأخذ منه ويعيد إليه.
- RosarioSIS 13.0.1 يثبت بسرعة من Docker Image المطور وبموارد قليلة، ولكن البصمة التي جربناها فيها إضافتا gd وzip لا تعملان، والترجمة العربية فيها نصوص ناقصة.
- Gibbon 30.0.01 يحتاج بناء بيئة PHP بنفسك، ومعالجه يفحص المتطلبات، وترجمته العربية مع RTL أنظف، ولكن إعداداته الافتراضية للمدارس الدولية.
- OpenEduCat هو الخيار إذا كان Odoo عندك أصلاً، وليس تطبيقاً رسمياً من Odoo.
- عطل خيارات إرسال البيانات في المعالج، وغير كلمات المرور الافتراضية، وضع HTTPS قبل أي بيانات حقيقية.

## سجل التحديثات

- أكتوبر 2026: كتابة المقال وتجربة RosarioSIS 13.0.1 مع PostgreSQL 15.19، وGibbon 30.0.01 مع PHP 8.3.36 وMySQL 8.4.11، على Docker.