كل مشروع خدمي في العراق يدير مواعيده بالهاتف: يرنّ، يجيب الموظف، يفتح دفتراً، يقرأ الأوقات الفارغة، يكتب الاسم. عشر مكالمات في الساعة تعني موظفاً مشغولاً بالكامل — وزبوناً لا يجيبه أحد فيذهب إلى غيرك.
في هذا الدليل نبني نظام حجوزات ومواعيد يصلح لصالون أو مركز أو عيادة أسنان أو ورشة: صفحة حجز عامة يفتحها الزبون بنفسه ويرى الأوقات الفارغة فوراً، وأجندة يومية للموظفين على هيئة جدول، وحالات الحجز بما فيها «لم يحضر»، وتقارير تكشف ساعة الذروة ونسبة عدم الحضور. بلا كتابة كود.
كل الصور من النظام وهو يعمل على سيرفر حقيقي، والحجز في الصور حجزناه بأنفسنا من الصفحة العامة. الأسماء من نسج الخيال.
إن لم يكن عندك سيرفر وأداة مفعّلة، ابدأ من الدليل الأساس. وأمثلة أخرى: العيادة · المطعم · المتجر الإلكتروني.
كيف تطلب السيرفر؟ خمس دقائق
لا تحتاج معرفة تقنية لطلب السيرفر — الخطوات أقرب إلى شراء اشتراك إنترنت منها إلى أي شيء تقني:
- افتح صفحة باقات VPS واختر الباقة المناسبة (الجدول أدناه يساعدك).
- في صفحة الإعداد اختر نظام التشغيل — اختر
Ubuntu-24، فهو ما تعمل عليه الأدوات بأقل مشاكل. - اختر دورة الفوترة: شهري، أو سنوي بخصم يقارب السُّبع.
- أضف إلى السلة، وادفع بالدينار العراقي عبر زين كاش أو بطاقة فيزا وماستركارد.
- خلال دقائق تصلك رسالة فيها عنوان الجهاز واسم المستخدم وكلمة المرور — ومنفذ الدخول
2026.
أي باقة تختار؟
| الباقة | الموارد | الشهري | هل تصلح للعمل مع الوكيل؟ |
|---|---|---|---|
| S-VPS 2 | نواة · 2 غيغابايت | 8 دولارات | لا للبناء. تصلح لاستضافة البرنامج بعد أن يكتمل ويخفّ. |
| S-VPS 3 | نواتان · 4 غيغابايت | 17 دولاراً | الحد الأدنى العملي. يعمل، مع بطء محسوس في المهام الطويلة. |
| S-VPS 4 | 4 أنوية · 8 غيغابايت | 29 دولاراً | المريح — وهو ما بنينا عليه كل مقالات هذه السلسلة. |
لماذا لا تكفي أرخص باقة؟ لأن الوكيل لا يكتب سطراً وينتظر: يقرأ عشرات الملفات، ويشغّل التنصيب، ويرفع الخادم، ويختبر — في اللحظة نفسها. بنواة واحدة وغيغابايت واحد ستختنق الجلسة قبل أن تُنهي الطلب الثالث، وستظن أن الأداة ضعيفة بينما المشكلة في الجهاز.
كيف تستخدم الأداة وأنت لست مبرمجاً؟
هذا هو السؤال الذي يوقف أكثر الناس. والجواب أبسط ممّا تظن: أنت لا تقرأ الكود، بل تقرأ الوصف وتجرّب النتيجة. الوكيل يشرح ما سيفعله بلغة بسيطة قبل أن يفعله، ويطلب إذنك، وينفّذ، ثم يخبرك بما جرى.
كيف تجري الجلسة عملياً؟
تدخل إلى سيرفرك، وتنتقل إلى مجلد المشروع، وتكتب اسم الأداة — فتفتح شاشة تكتب فيها طلبك بالعربية. ثم تتكرّر أربع خطوات:
- تكتب الطلب وتضغط Enter.
- يعرض عليك خطة قبل التنفيذ في المهام غير البديهية — اقرأها. إن رأيت فيها ما لم تطلبه، قل «لا تفعل كذا» قبل أن يبدأ.
- يطلب إذنك عند كل عملية حسّاسة: إنشاء ملف، تعديل ملف، تشغيل أمر. هذه لحظتك — الموافقة ليست شكلية.
- تفتح الصفحة في متصفحك وتجرّب. ما لم تجرّبه بنفسك لا تعتبره منجزاً، مهما قال لك إنه انتهى.
الأوامر التي تحتاجها فعلاً
الأدوات فيها عشرات الخيارات، لكن ما ستستعمله يومياً لا يتجاوز هذه:
أهمّها --continue وresume: الجلسة تحتفظ بذاكرتها، فتستطيع أن تغلق حاسبتك وتعود غداً وتكمل من حيث توقّفت — والوكيل يتذكّر المشروع كله.
أربع قواعد تغنيك عن تعلّم البرمجة
| القاعدة | التطبيق |
|---|---|
| اطلب مهمة واحدة | شاشة واحدة أو ميزة واحدة في كل طلب — لا «ابنِ لي النظام» |
| جرّب بعد كل خطوة | افتح الصفحة واضغط الأزرار. خمس دقائق تجربة توفّر ساعة تصحيح |
| صف العطل لا الحل | «أضغط حفظ فتختفي الفاتورة» أفضل بكثير من «غيّر الدالة الفلانية» |
| خذ نسخة قبل الطلبات الكبيرة | نسخة من مجلد المشروع، أو git init مرة واحدة — فتكون تكلفة أي خطأ صفراً |
وإن تعطّل شيء ولم تفهم السبب؟ انسخ رسالة الخطأ كما هي والصقها في الجلسة واكتب: «هذا ما ظهر لي، ما المشكلة وكيف نصلحها؟». الوكيل يقرأ الأخطاء أفضل ممّا يقرأها كثير من المبرمجين — ورسالة الخطأ هي نصف الحل.
الخطوة 1 قواعد المشروع
# قواعد نظام الحجوزات - الواجهة عربية من اليمين إلى اليسار، والعملة دينار عراقي بلا كسور. - Node.js + SQLite في ملف واحد. - الزبون يحجز بلا إنشاء حساب — الاسم والهاتف يكفيان. - ممنوع حجز الوقت نفسه لموظف واحد مرتين مهما حدث. - أرقام الهواتف تُعرض باتجاه من اليسار إلى اليمين. - بعد كل تعديل شغّل البرنامج وتأكّد أنه يعمل.
السطر الرابع هو الشرط الوحيد الذي لا يحتمل التساهل في نظام حجوزات. زبونان يفتحان الصفحة في اللحظة نفسها ويختاران الوقت نفسه — إن لم يمنع النظام ذلك فستكتشف الازدواج حين يقف الزبونان أمام بابك. اطلب المنع صراحةً: «تحقّق مرة أخرى قبل الحفظ، وإن كان الوقت قد حُجز فأعِد الزبون إلى قائمة الأوقات».
الخطوة 2 الموظفون والخدمات
أنشئ تطبيق ويب بـ Node.js. عرّف أولاً الموظفين: لكل موظف اسم وصفة ووقت بدء الدوام ووقت انتهائه ويوم عطلته. ثم الخدمات: لكل خدمة اسم ومدّة بالدقائق وسعر. وأضف شاشة إدارة تعرض الجدولين، ومع كل موظف عدد حجوزاته، ومع كل خدمة عدد مرات حجزها.
ولاحظ أن مدّة الخدمة ليست تفصيلاً جمالياً: هي التي تجعل «صبغة 60 دقيقة» و«حلاقة ذقن 20 دقيقة» تحجزان مساحة مختلفة في الأجندة.
الخطوة 3 صفحة الحجز العامة
أضف صفحة عامة (بلا تسجيل دخول) في ثلاث خطوات مرقّمة: 1) اختر الخدمة: بطاقات فيها اسم الخدمة ومدّتها وسعرها، والمختارة تتميّز بإطار ملوّن. 2) اختر الموظف واليوم، واعرض تحتهما سطراً يذكّر بأوقات دوام هذا الموظف ويوم عطلته. 3) اختر الوقت: أزرار بالأوقات كل نصف ساعة ضمن دوام الموظف فقط. الأوقات المحجوزة تظهر مشطوبة ومعطّلة. بعد اختيار الوقت: صفحة صغيرة للاسم والهاتف وملاحظة اختيارية، ثم صفحة تأكيد فيها رقم الحجز وملخّصه.
عرض الأوقات المحجوزة مشطوبة بدل إخفائها ليس تفصيلاً: حين يرى الزبون أن الساعة الخامسة محجوزة يفهم أن المكان مطلوب، ويختار وقتاً آخر بدل أن يظنّ أنك مغلق.
الخطوة 4 أجندة اليوم للموظفين
أضف لوحة إدارة محمية بتسجيل دخول. شاشتها الأولى «أجندة اليوم»: جدول عموده الأول الأوقات كل نصف ساعة، وبقية أعمدته الموظفون — عمود لكل موظف وتحت اسمه أوقات دوامه. الحجز يظهر في خانته بطاقةً صغيرة فيها اسم الزبون واسم الخدمة ومدّتها، والملاحظة بعلامة تنبيه. لوّن البطاقة بحسب الحالة: مؤكّد · تمّ · لم يحضر. وفوق الجدول أربع بطاقات: حجوزات اليوم، وما تمّ، ومن لم يحضروا، والإيراد المنجَز.
هذه الشاشة تُعرض على جهاز في الاستقبال طول اليوم. صمّمها لتُقرأ من مسافة متر، لا لتُدرس.
الخطوة 5 الحالات — و«لم يحضر» تحديداً
أضف شاشة «كل الحجوزات»: جدول بكل الحجوزات فيه الرقم والتاريخ والوقت والزبون وهاتفه والخدمة والموظف والسعر، والملاحظة تحت اسم الزبون بلون تنبيه. أربع حالات: مؤكّد · تمّ · لم يحضر · ملغى، يغيّرها الموظف من الجدول مباشرة.
لماذا نفصل «لم يحضر» عن «ملغى»؟ لأنهما مشكلتان مختلفتان. الإلغاء المسبق يتيح لك إعطاء الوقت لغيره؛ أما عدم الحضور فوقت ضائع تماماً. وحين تقيسهما منفصلين تعرف هل تحتاج تذكيراً قبل الموعد أم سياسة عربون.
الخطوة 6 التقارير — ساعة الذروة وعدم الحضور
أضف شاشة «التقارير»: أربع بطاقات — إجمالي الحجوزات، والإيراد المنجَز، ونسبة عدم الحضور، وساعة الذروة. ثم جدول حسب الخدمة (مرات الحجز والإيراد المنجَز)، وجدول حسب الموظف (حجوزاته ومن لم يحضروا وإيراده)، وجدول «توزيع الحجوزات على الساعات» بشريط بصري لكل ساعة. واكتب تحته أن التوزيع يخبرك متى تزيد موظفاً ومتى تغلق مبكراً.
الخطوة 7 التشغيل والحماية
1. اجعل لوحة الإدارة محمية بتسجيل دخول، وأبقِ صفحة الحجز وحدها مفتوحة للعموم. 2. اجعل البرنامج خدمة نظام تعمل عند الإقلاع وتعيد تشغيل نفسها. 3. اربطه بنطاقك مع شهادة HTTPS مجانية. 4. نسخة احتياطية يومية مع الاحتفاظ بآخر 30 نسخة.
دروس هذا النظام
| الدرس | التفصيل |
|---|---|
| امنع الازدواج صراحةً | تحقّق ثانٍ قبل الحفظ — لأن زبونين قد يحجزان في اللحظة نفسها |
| اشطب ولا تُخفِ | الوقت المحجوز المشطوب يقول «مطلوب»، والمخفي يقول «مغلق» |
| فرّق بين الإلغاء وعدم الحضور | مشكلتان مختلفتان وحلّان مختلفان |
| أقلّ عدد حقول ممكن | الاسم والهاتف — وكل حقل إضافي يكلّفك حجوزات |
| صمّم للمسافة | شاشة الاستقبال تُقرأ من متر، لا تُدرس عن قرب |
خاتمة السلسلة
بهذا المقال تكتمل سلسلة «ابنِ برنامجك بنفسك بالذكاء الاصطناعي»: عشرة أنظمة عربية كاملة، بُنيت كلها على سيرفر واحد، بلا كتابة سطر كود بأيدينا — فقط طلبات مكتوبة بالعربية، ومراجعة، وتجربة.
والدرس الذي تكرّر في كل مقال: الأداة تعرف كيف تكتب الكود، وأنت وحدك تعرف ما يحتاجه عملك. الطلب الواضح، والمهمة الواحدة، والتجربة بعد كل خطوة — هذه المهارات الثلاث تكفيك.
راجع بقية السلسلة: الدليل الأساس · المبيعات · الحسابات · العيادة · المدرسة · المتجر · المطعم · العقارات · إدارة العملاء · شركة الإنترنت.
وللبدء: اختر باقة VPS ثم دليل التنصيب والتفعيل.