كل الأعمال
032026تصميم المنتج، والتطوير المتكامل، والنشر

Site Ledger

نظام حضور ورواتب لموقع إنشاء مستشفى

PHP 8MySQLJavaScriptQR ScanningTOTP 2FAPayroll Engine

نظام خاص بالعميل · بموجب اتفاقية سرية

ملخص المشروع

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

تبني مؤسسة وقفية خيرية مستشفى جامعيًا، وكانت الرواتب الأسبوعية للموقع محفوظة في ملف Excel واحد يُعبّأ يدويًا: أكثر من 5,000 صف للورديات، وأربع أوراق مترابطة، وتصحيحات تُكتب فوق ما كان قبلها. كان الملف يؤدي الغرض، لكن كل يوم لصرف الرواتب كان يعتمد على دقة شخص في الكتابة، ولم يكن ممكنًا تتبّع أي أسبوع متنازع عليه إلى أي أصل.

كانت قواعد ذلك الملف قد صمدت أمام شهور من الرواتب الفعلية، فنُقلت كما هي تمامًا: حد أقصى للساعات العادية قدره 10 ساعات، وعمل إضافي يُحتسب بمعدل 1.5 ضعف فقط بعد أن يعتمده شخص مسؤول، وقاعدة ليوم السبت تنقل تسجيل الدخول بعد الظهر إلى أسبوع الرواتب التالي، حتى لا تنقسم وردية تمتد إلى يوم الأحد إلى قسمين. وأصبح التأخير موافقة مستقلة بدلًا من خصم تلقائي، فيستطيع رئيس العمال اعتماد العمل الإضافي في وردية ما بينما لا يزال يراجع التأخير فيها.

يمسح العمال بطاقة QR مغلّفة على جهاز لوحي عند البوابة موصول بماسح USB. الخادم هو من يسجّل الوقت، لا الجهاز أبدًا، والتسجيلات تُضاف فقط ولا تُعدَّل: التصحيح يشير إلى الصف الذي يحل محله بدلًا من الكتابة فوقه. ويُغلق كل أسبوع بكشف موقّع يحفظ بصمة (hash) للمستند، فإذا تغيرت البيانات الأساسية يومًا نبّه النظام إلى ذلك، ويُصدّر موظفو الرواتب التنسيق نفسه الذي اعتادوا اعتماده.

يعمل النظام بلغة PHP 8 خالصة مع MySQL على استضافة مشتركة، دون إطار عمل ودون خطوة بناء، لأن هذا ما تشغّله استضافة العميل. استبعد ذلك بعض المكتبات، فكُتب مولّد رموز QR وكاتب ملفات Excel بصيغة xlsx من الصفر. والوصول محمي بتسجيل دخول إلزامي بخطوتين عبر TOTP، وتقييد لمحاولات الدخول، ورموز CSRF، وكشك لا يعمل إلا على جهاز لوحي جرى إقرانه عبر رابط يُستخدم مرة واحدة.

ما تم تسليمه

  • كشك لمسح بطاقات QR على جهاز لوحي مُقترن عند البوابة مع ماسح USB
  • محرك رواتب يحافظ على قواعد الملف الأصلي: حد 10 ساعات، وعمل إضافي معتمد بمعدل 1.5 ضعف، وقاعدة يوم السبت
  • اعتماد العمل الإضافي والتأخير كلٌّ على حدة، حسب الدور
  • تسجيلات تُضاف فقط: التصحيحات تشير إلى الأصل ولا تكتب فوقه
  • كشوف أسبوعية موقّعة ببصمة (hash) تكشف أي تعديل لاحق
  • مولّد QR وكاتب ملفات xlsx دون أي مكتبات خارجية، ليعملا على الاستضافة المشتركة
  • نقل أكثر من 5,000 صف من سجلات الورديات السابقة من Excel
الدور
تصميم المنتج، والتطوير المتكامل، والنشر
السنة
2026
المشكلة

من ملف يُعبّأ يدويًا إلى مسحة واحدة عند البوابة

كانت رواتب الموقع بأكمله محفوظة في ملف Excel واحد. احتفظ النظام الجديد بكل قاعدة كانت تعمل أصلًا، واستبدل كل ما عداها.

قبل
  • 5,000+صف وردية أُدخل يدويًا
  • 4أوراق مترابطة تحمل الرواتب
  • 0أثر يبقى عند تصحيح أي صف
بعد
  • مسحة واحدةلتسجيل دخول العامل عند البوابة
  • 2موافقتان منفصلتان: العمل الإضافي والتأخير
  • نقرة واحدةللحصول على كشف موقّع أو تصدير ملف Excel
آلية العمل

من البطاقة إلى الكشف الموقّع

  1. 01بطاقة QRمغلّفة، واحدة لكل عامل
  2. 02كشك البوابةجهاز لوحي مُقترن مع ماسح USB
  3. 03ساعة الخادملا يُعتمد على وقت الجهاز أبدًا
  4. 04سجل إضافة فقطالتصحيحات تشير إلى الأصل ولا تكتب فوقه
  5. 05الموافقاتالعمل الإضافي والتأخير، حسب الدور
  6. 06كشف موقّعتُحفظ بصمته (hash) ثم يُصدَّر إلى Excel
جرّبه

الكشك ومحرك الرواتب، على بيانات تجريبية

امسح بطاقة، وحرّك الأوقات، ثم اعتمد العمل الإضافي والتأخير أو أجّلهما. القواعد حقيقية، أما العمال والأجور فافتراضية.

كشك البوابة جهاز مُقترن

اختر بطاقة، ثم امسحها.

مشروع المستشفى الجامعيالبوابة الرئيسية
07:12:00
امسح بطاقتك
قرّب البطاقة من القارئ
امسح البطاقة هنا
دخول المشرف (بطاقة مفقودة)لوحة التحكم

الخادم هو من يسجّل الوقت، وساعة الجهاز اللوحي لا تؤثر في الرواتب أبدًا.

محرك الرواتبأجر تجريبي $3.00/ساعة
اليوم
ساعات التواجد في الموقع12.30 ساعة
ساعات عادية (بحد أقصى 10 ساعات)10.00 ساعة
عمل إضافي بمعدل 1.5 ضعفبانتظار الاعتماد
خصم التأخيربانتظار الاعتماد
أجر اليوم$30.00
يُحتسب ضمن رواتب هذا الأسبوع. جرّب تسجيل دخول يوم السبت بعد الساعة 12:00 لترى هذه القاعدة.

العمال والأجور افتراضية، والقواعد مطابقة للمحرك الحقيقي.

داخل النظام

ما يراه المسؤولون

الشاشات الحقيقية مُعاد رسمها بصفوف تجريبية، وبالعربية التي يعمل بها النظام الفعلي في مكتب الموقع. تبقى الأسماء والمبالغ لدى العميل.

اعتماد خصومات التأخير
كشف أسبوعي موقّع
تحت الغطاء

مبني لاستضافة مشتركة، ومحصّن كما ينبغي

01

مولّد QR من الصفر

تخرج البطاقات من مولّد QR لا يعتمد على أي مكتبة خارجية، مع اختبار ذاتي يجب أن ينجح على الخادم قبل طباعة أي بطاقة.

02

كاتب حقيقي لملفات Excel

لم تكن إضافة zip متوفرة على الاستضافة، لذا يبني التصدير ملفات Excel صالحة يدويًا. ويحصل موظفو الرواتب على التنسيق نفسه الذي اعتادوا اعتماده.

03

كشوف تكشف أي تلاعب

يحفظ كل كشف أسبوعي موقّع بصمة (hash) للمستند، فإذا تغيرت البيانات الأساسية لاحقًا نبّه النظام إلى ذلك.

04

وصول محكم

تسجيل دخول إلزامي بخطوتين عبر TOTP، وتقييد لمحاولات الدخول، ورموز CSRF، وكشك لا يعمل إلا على جهاز لوحي مُقترن عبر رابط يُستخدم مرة واحدة.

05

الكود خارج المجلد العام

يقع كود التطبيق وإعداداته بجوار public_html لا بداخله، مع قاعدة ثانية تُعيد الخطأ 404 لهذه المسارات إن رُفعت إليه خطأً يومًا.

06

مبني ليواصل التطور

أكثر من 40 عملية ترحيل لقاعدة البيانات نُشرت مع تطور قواعد الموقع: قوالب الورديات، وتتبّع معدات الحماية الشخصية، وطلبات الورديات الفائتة، والمدفوعات، وغير ذلك.

المشروع التالي

Obay Morad

علامة شخصية ومعرض أعمال