قلمي
مساعد تصحيح للمعلّمين، بالعربية والإنجليزية. يقرأ أوراق الطلاب المكتوبة بخط اليد ويكتب الدرجة مسودة، ثم يتوقف، لأن قاعدة البيانات لا تسمح لغير معلّم باعتماد درجة نهائيًا.
زُر qalamiapp.com ←- المنصة
- Next.js + Claude API، بُني بـ Claude Code
- التقنيات
- Next.js 16, React 19, Supabase (Postgres, Auth, Row Level Security, Storage), Claude API, TypeScript
ما هو
يصحّح قلمي أوراق الطلاب المكتوبة بخط اليد. يصوّر المعلّم أوراق الصف كلها، فيقرأ قلمي كل ورقة مقابل سلّم التصحيح الخاص بذلك المعلّم، ويكتب درجة مسودة لكل معيار، ويكتب معها الملاحظات. ثم يمرّ المعلّم على المسودة، فيُبقي ما هو صحيح ويغيّر ما ليس كذلك، ويعتمد الورقة. وعلى مستوى صف كامل، هذا يحوّل أمسية تصحيح إلى قراءة مراجِعة.
ويعمل بالعربية وبالإنجليزية، بواجهة تعمل من اليمين إلى اليسار فعلًا، لا واجهة مقلوبة عن الإنجليزية. وبالنسبة للمدارس التي بُني من أجلها، هذه ليست طبقة ترجمة أُضيفت في النهاية، بل هي المنتج نفسه. كل نص، وكل صيغة تاريخ، وكل صيغة جمع مكتوبة مرتين؛ والعربية لا تجمع كما تجمع الإنجليزية، فجملة تعدّ ثلاث أوراق وجملة تعدّ إحدى عشرة ورقة تحتاجان كلمات مختلفة فعلًا.
وهو أيضًا الشيء الوحيد في هذه الصفحة الذي هو منتج حيّ لا نموذج أوّلي. مرّ مخطّط قاعدة بياناته بسبع وعشرين عملية ترحيل (migration)، وكثير من ذلك آلات غير برّاقة تحتاجها المدرسة فعلًا: حسابات تظل تعمل حين يترك معلّم المدرسة، ونسخ ممسوحة ضوئيًا تحذف نفسها بعد مدة محددة، وسجلّ لتقدّم طالب واحد يبقى متماسكًا عبر الفصول الدراسية.
ملاحظة بصراحة: هو لا يقرأ كل كلمة قراءة صحيحة. الخط اليدوي يبقى خطًا يدويًا، وإجابة مُمحاة، أو إجابتان مكتوبتان على سؤال واحد، قد تُربكه. ولهذا ليست قراءة المعلّم للمسودة إجراءً شكليًا: فالتصميم يفترض أن المسودة مخطئة في مواضع قليلة، ويحاول أن يجعل تلك المواضع سهلة العثور عليها.
لماذا بنيته بهذه الطريقة
التصحيح هو الجزء الذي يلتهم أمسيات المعلّمين، فمن البديهي أن يحاول أحد المساعدة فيه. وهو أيضًا الجزء الذي يقع الخطأ فيه على طفل، لأن الدرجة تلاحق الطالب بعد ذلك. والسؤال الذي ظللت أعود إليه لم يكن هل يستطيع نموذج أن يقرأ خط اليد، فهو يستطيع في الغالب، بل ما الذي يجب أن يتحقق قبل أن أكون مرتاحة لأن يقترب رقم أنتجه ذلك النموذج من تقرير حقيقي.
الجزء الذي تطلّب تفكيرًا حقيقيًا
هناك نسخة من قلمي تصحّح أوراق الصف وتعرض على المعلّم نتيجة نهائية جاهزة. هي أسرع في الاستخدام وتبدو أفضل في العرض التجريبي، وقد قررت ألا أبنيها، لأن البرنامج متى أعلن رقمًا لم يعد المعلّم هو من يتخذ القرار، بل صار يعترض على قرار اتُّخذ سلفًا. ولم أرد أن يوضع معلّم في هذا الموقف بشأن طالب يعرفه هو ولا يعرفه البرنامج.
لذلك لا يعلن قلمي درجة أبدًا. بل يكتبها مسودة، ويعرض ما قرأه من الورقة، وينتظر.
وأكثر ما يسرّني هو المكان الذي حُفظت فيه هذه القاعدة. فهي ليست عُرفًا في الواجهة قد تُسقطه إعادة هيكلة لاحقة بهدوء، بل هي في قاعدة البيانات. تمرّ الورقة بالحالات: مسودة، ثم جاهزة، ثم قيد التصحيح، ثم قيد المراجعة، ثم نهائية، ولا يستطيع أحد غير المعلّم أن ينفّذ الانتقال الأخير. والمخطّط يقول ذلك في تعليق مكتوب فيه: «لا شيء يصبح نهائيًا بغير معلّم.» ويحمل كل معيار على حدة حالته الخاصة أيضًا: قيد الانتظار، أو مقبول، أو مُعدَّل، فتترك قراءة المعلّم أثرًا يبيّن ما نظر فيه فعلًا بدل أن تنطوي كلها في زر اعتماد واحد.
وقراران أصغر خرجا من التفكير نفسه. التصحيح يقول متى يكون غير واثق، ويشير إلى الإجابات المعيّنة التي لم يتيقّن منها، فيذهب انتباه المعلّم إلى موضع الخطر بدل أن يتوزّع بالتساوي على كومة أوراق. والمهلة التي تمحو نسخ الطلاب الممسوحة بعد تسعين يومًا يبدؤها مُشغِّل (trigger) في قاعدة البيانات لا التطبيق، لأن أي شيء يستطيع التطبيق ضبطه يستطيع خلل في التطبيق ضبطه أيضًا، وذلك يعني إما حذف عمل طفل قبل أوانه وإما الاحتفاظ به إلى الأبد.
ما اكتشفته
أربع عبارات في الموقع كانت تقول إن النظام يسجّل مَن قَبِل كل درجة أو غيّرها. وهو لا يفعل. المخزَّن هو الإجراء نفسه — قُبِل، عُدِّل — لا الشخص أبدًا، ولا يوجد عمود كهذا في أي من عمليات الترحيل السبع والعشرين. وفي مساحة عمل فيها معلّم واحد تبدو القراءتان متطابقتين، ولهذا بقيت العبارة دون أن يلاحظها أحد كل هذه المدة. أما في غرفة معلّمين مشتركة فقد كانت ببساطة غير صحيحة.
ولم أكتشفها إلا لأنني ذهبت أبحث عن الدليل الذي يسند هذا الكلام فلم أجد شيئًا.
واثنتان من الأربع لم تكونا نصًا تسويقيًا. واحدة كانت في الشروط التي توافق عليها المدرسة، وواحدة كانت في إفصاح الذكاء الاصطناعي، وهو الموضع الوحيد المُلزَم بوصف الآلية الموجودة فعلًا. والعبارات الأربع تقول الآن «ما إذا كانت كل درجة قد اعتُمدت أو عُدِّلت»، بالعربية والإنجليزية معًا، لأن هذا هو ما يستطيع الكود إسناده. وتخزين هوية المعلّم أيضًا مدرج على قائمتي، وإلى أن يتم ذلك، على النص أن يصف الموجود.