منصة توظيف
منصة واحدة يسير فيها التوظيف والعمل الحر على المسار نفسه، في أربع خطوات.
Next.js · React · TypeScript · PostgreSQL · Prisma · Neon
اقرأ القصة كاملةالجميع أمام الورقة نفسها، وتحت الساعة نفسها
منصة امتحانات تديرها المؤسسة بنفسها، من بنك الأسئلة إلى إعلان النتائج.
بعد سنتين من تسليم النظام الإداري الذي بنيته لهم، عاد المعهد التقني نفسه بطلب جديد: أن يمتحن طلاب السنة الأخيرة في عدة مواد، وأن يصحح كل الأوراق، وأن يرتب الطلاب ترتيبًا توزع على أساسه جوائز حقيقية. وهذا العمل على الورق بطيء في إجرائه، وأبطأ منه في تصحيحه، ويبقى ترتيبه بابًا مفتوحًا للطعن.
الترتيب الذي توزع على أساسه جوائز لا يثبت إلا إذا جلس كل طالب للامتحان نفسه وتحت الشروط نفسها، وهنا تكمن الصعوبة. فيكفي خلل واحد حتى يصبح الترتيب كله موضع جدال: ساعة تعمل على حاسوب الطالب نفسه، أو ورقة تفتح من جديد بعد تسليمها، أو سؤال يعدل بعد التصحيح فيحرك علامة قديمة.
بدأت من قاعدة واحدة: لا أثق بأي شيء تصل إليه يد الطالب. فالخادم هو الذي يحدد موعد نهاية الامتحان لحظة أن تبدأ المحاولة، وما العداد الذي يظهر على الشاشة إلا عرض لذلك الموعد، وكل حفظ يمر على الخادم ليتأكد منه قبل أن يقبله. والأجوبة تحفظ أولًا بأول أثناء الكتابة، فإذا انطفأ حاسوب في منتصف الورقة، خسر صاحبه المشي إلى المراقب، ولم يخسر ما كتبه.
وكل ورقة تحتفظ بنسختها الخاصة من الأسئلة ومن مفاتيح التصحيح كما سلمت للطالب تمامًا. فإذا صحح سؤال في الفصل القادم، لم تتحرك أي علامة أعطيت في هذا الفصل. حتى ترتيب الأسئلة والخيارات يتولد من بذرة محفوظة، ولذلك يمكن أن يعاد بناء ورقة طالب بعينه كما رآها، ولو بعد شهور، إذا وقع اعتراض.
أما النصف الآخر من العمل فكان أن أجعل نفسي غير ضروري. فالبرامج والمستويات والمواد والأفواج وبنوك الأسئلة وسلالم التنقيط كلها ينشئها موظفو المعهد من شاشاتهم، من غير رجوع إلي. ولهذا ظل النظام ينمو بعد أن سلمته.
موعد النهاية يحسب ويسجل على الخادم لحظة بدء المحاولة، وكل حفظ يقاس على ذلك الموعد. فالجهاز الذي يتأخر ساعة كاملة، سواء بقصد أو بغير قصد، لا يكسب صاحبه دقيقة واحدة.
كل محاولة تحتفظ بنسختها الخاصة من الأسئلة ومفاتيح التصحيح كما رآها الطالب. فإذا عدل بنك الأسئلة بعد ذلك، لم تمس أي علامة قديمة، ويمكن إعادة بناء الورقة نفسها عند أي اعتراض.
اختيار من متعدد، وصواب وخطأ، وأرقام لها هامش مقبول، وإجابات قصيرة تقبل أكثر من صيغة، وفراغات لكل فراغ وزنه، ومطابقة، وترتيب، ومقال يذهب إلى مصحح بشري. وتعطى الدرجة الجزئية حيث يكون لها معنى.
يرى المراقب أثناء الجلسة من بدأ، ومن اقترب وقته من النهاية، ومن توقف عن الإجابة. ويستطيع أن يمنح وقتًا إضافيًّا أو يلغي محاولة والامتحان قائم، وكل إجراء يسجل باسم من قام به ومعه سببه.
من عشرين مع الملاحظة، أو بالحروف، أو بنسبة مئوية، أو ناجح وراسب. فسلم التنقيط جدول يحرره الموظفون بأنفسهم، والنظام يرفض أي جدول فيه فجوة أو تداخل.
بعد التصحيح يحصل كل سؤال على درجة تبين صعوبته، ومقياس يبين هل ميز الطلاب الأقوياء من غيرهم، ويحلل كل خيار خاطئ ليعرف هل خدع أحدًا. فالسؤال الذي أخطأ فيه أفضل الطلاب جميعًا يكون مفتاحه في الغالب هو الخطأ.
على الخادم، وما العداد الذي في المتصفح إلا شاشة عرض.
قد يكون جهاز في قاعة الامتحان متأخرًا ساعة كاملة، بقصد أو بغير قصد. فلو كان المتصفح هو الذي يملك الساعة، لصار أقصر طريق إلى وقت إضافي هو تغيير وقت الجهاز. أما حين يحدد الخادم الموعد مرة واحدة ويقيس عليه كل حفظ، فإن الجميع يحصلون على الجواب نفسه عن السؤال: كم بقي من الوقت؟
على الاتصال الضعيف قد يتأخر العداد ثانية أو ثانيتين، ومن انقطعت جلسته خسر ذلك الوقت. وهي القاعدة نفسها المعمول بها في الامتحان الورقي، ومع ذلك لا بد من شرحها للطلاب يوم الامتحان.
محاولة واحدة، والورقة التي سلمت لا تفتح من جديد.
الترتيب توزع على أساسه جوائز حقيقية، والمحاولة الثانية امتحان آخر مختلف. فمنذ اللحظة التي يحصل فيها طالب واحد على محاولة ثانية، يصير الترتيب مقارنة بين شيئين مختلفين. كل قاعدة أخرى في النظام كانت تقبل النقاش، أما هذه فكانت هي المنتج نفسه.
الحادث الحقيقي، كانقطاع الكهرباء أو تعطل المتصفح، لا يعالج ببداية جديدة في هدوء، بل لا بد أن يلغي أحد المسؤولين المحاولة في السجل ومعها سبب مكتوب. وهذا أبطأ، ولا يحبه أحد يوم الامتحان.
المعهد. فالبرامج والمستويات والأفواج والأسئلة كلها في يد موظفيه.
النظام الذي يحتاج فيه كل تغيير إلى مكالمة مع المطور يتوقف الناس عن استعماله في أول أسبوع ينشغل فيه المطور. صحيح أن تمكين الموظفين من بناء هيكلهم بأنفسهم كلفني بناء أكثر بكثير، لكنه النسخة الوحيدة من هذا النظام التي تستطيع أن تعيش من بعدي.
صار البناء أكبر، وصارت طرق الخطأ أكثر، لأن الموظفين أصبحوا قادرين على إنشاء هيكل لا معنى له. وكان الطريق الآخر أقل مخاطر، غير أنه كان سيحتاج إلي إلى الأبد.
لا شيء. فتعديل سؤال سبق امتحانه ينشئ نسخة جديدة منه، وتبقى النسخة القديمة كما صححت عليها الأوراق.
إصلاح سؤال في هذا الفصل يجب ألا يحرك علامة أعطيت في الفصل الماضي. ومن غير هذه القاعدة يتحول تعديل بنك الأسئلة إلى إعادة كتابة صامتة للتاريخ، ويكون أول من ينتبه طالبًا تغيرت نتيجته من تلقاء نفسها.
يصبح للسؤال الواحد أكثر من نسخة في قاعدة البيانات. وهذا يكلف تخزينًا، ويجعل السؤال عن أداء سؤال ما سؤالًا عن نسخه أيضًا.
كان المعهد قد عمل معي من قبل، فبدأنا من الامتحان نفسه لا من دفتر شروط: أي مواد ستمتحن، وكم عدد الطلاب، وماذا تقرر العلامات. وظهر مبكرًا أن الترتيب ستوزع عليه جوائز، فصار ذلك هو المعيار الذي تقاس عليه كل قاعدة جاءت بعده.
رسمت النظام حول لحظتين يجب أن تصمدا مهما حدث: لحظة وصول الورقة إلى الطالب، ولحظة إعطاء العلامة. فوضعت الساعة عند الخادم، وجعلت الورقة تحفظ نسختها، ورتبت كل شيء آخر خلف هاتين اللحظتين.
بنيت النظام بالترتيب الذي سيستعمله به المعهد: بنك الأسئلة أولًا حتى يبدأ الموظفون الكتابة وشاشة الامتحان ما زالت قيد البناء، ثم قطعت بمادة واحدة الطريق كله قبل أن أضيف بقية المواد.
جرت الامتحانات فعلًا، وما زال النظام يعمل إلى اليوم. والذي تكشفه أول جلسة حقيقية ليس الأعطال في الغالب، بل الإعدادات التي لا يستطيع أحد أن يخمنها مسبقًا، مثل: ما الذي يحق للطالب أن يراه بعد إعلان النتائج؟
سلمت المنصة في سنة 2025 وما زالت تعمل إلى اليوم، وقد أضاف المعهد موادَّ جديدة من عنده منذ ذلك الحين من غير أن يسألني أحد، وهذا عندي هو المهم. ثم أخذت النظام نفسه خطوة أبعد: جعلته منصة عامة يفتح فيها أي معهد أو جامعة حسابًا خاصًّا به، ويدير برامجه وأفواجه وبنوك أسئلته وامتحاناته كاملة، وكل مؤسسة معزولة عن غيرها عزلًا تامًّا.
الإيرادات والنمو ملك للعميل. ولا أنشر أرقامًا لم أقسها بنفسي.
منصة واحدة يسير فيها التوظيف والعمل الحر على المسار نفسه، في أربع خطوات.
Next.js · React · TypeScript · PostgreSQL · Prisma · Neon
اقرأ القصة كاملةمنصة حجز لمراكز التجميل: واتساب في الواجهة، ونظام كامل يقف خلفه.
Next.js · TypeScript · Prisma · Neon · Better Auth · WhatsApp Business API
اقرأ القصة كاملةلديك فكرة، ولا شريك تقني معك، ولا خطوة تالية واضحة أمامك. وهذه هي نقطة البداية المعتادة.
احكِ لي عن فكرتك