«الشغل ماشي، بس الفلوس ما موجودة.» جملة يقولها أصحاب الشركات الصغيرة في العراق كل شهر تقريباً. وسببها في الغالب ليس سوء إدارة، بل أن الدفتر لا يفرّق بين شيئين مختلفين تماماً: ما ربحتَه، وما قبضتَه.
في هذا الدليل نبني نظام حسابات وفواتير عربياً يفرّق بينهما بوضوح: العملاء والموردون، وفواتير البيع والشراء، والمدفوع والمتبقّي، وكشف حساب لكل جهة، والمصروفات مبوّبة، وتقرير شهري فيه قائمة دخل وحركة نقدية منفصلتين. بلا كتابة كود — فقط طلبات مكتوبة بالعربية لوكيل ذكاء اصطناعي على سيرفرك.
كل الصور في هذا المقال من النظام وهو يعمل على سيرفر حقيقي، وبيانات شهر كامل أدخلناها فيه. الأسماء والأرقام من نسج الخيال، والبنية واقعية.
إن لم يكن عندك سيرفر وأداة مفعّلة بعد، ابدأ من هنا: شغّل Claude Code و Codex على سيرفرك — الدليل المصوّر. وإن أردت مثالاً أبسط قبل هذا، فمقال نظام المبيعات والمخزون أخفّ.
كيف تطلب السيرفر؟ خمس دقائق
لا تحتاج معرفة تقنية لطلب السيرفر — الخطوات أقرب إلى شراء اشتراك إنترنت منها إلى أي شيء تقني:
- افتح صفحة باقات 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 قواعد المشروع
في مجلد المشروع، ملف AGENTS.md أو CLAUDE.md:
# قواعد نظام الحسابات - الواجهة عربية من اليمين إلى اليسار، والعملة دينار عراقي بلا كسور. - Node.js + SQLite في ملف واحد. - كل مبلغ يُخزَّن رقماً صحيحاً بالدينار — ممنوع الكسور العشرية في المال. - المبالغ السالبة تُعرض بعلامة ناقص قبل الرقم لا بعده. - بعد كل تعديل شغّل البرنامج وتأكّد أنه يعمل.
السطر الثالث ليس تفصيلاً. تخزين المال بأرقام عشرية (float) يُنتج فروقاً صغيرة تتراكم حتى لا يطابق المجموع نفسه. ولأن الدينار العراقي بلا كسور عملياً، فتخزينه رقماً صحيحاً يحلّ المشكلة من جذرها. والسطر الرابع وقع فيه نظامنا فعلاً: ظهر الرقم السالب 895,000- بالعلامة في الجهة الخطأ، لأن الاتجاه العربي يقلبها — وطلبٌ واحد صحّحه.
الخطوة 2 جهات التعامل: العملاء والموردون
أنشئ تطبيق ويب بـ Node.js في هذا المجلد. ابدأ بشاشة «العملاء والموردون»: جدول لجهات التعامل، لكل جهة نوعها (عميل أو مورّد) والاسم والهاتف وملاحظة، وعمود «الرصيد» يعرض المستحقّ لها أو عليها. الرصيد الموجب = مبلغ لك على العميل (بالأحمر)، والسالب = مبلغ عليك للمورّد (بالأخضر). أدخل خمس جهات تجريبية بأسماء عراقية وأرقام هواتف عراقية.
الخطوة 3 الفواتير: المبلغ والمدفوع والمتبقّي
هذه هي الخطوة التي تصنع الفرق. الفاتورة عندنا ليست رقماً واحداً، بل ثلاثة:
أضف شاشة «الفواتير» تجمع فواتير المبيعات والمشتريات معاً. كل فاتورة: النوع (مبيعات/مشتريات)، التاريخ، الجهة، البيان، المبلغ الكلّي، المدفوع، والمتبقّي (محسوباً). أضف عمود «الحالة» يعرض شارة ملوّنة: مسدّدة · مسدّدة جزئياً · غير مسدّدة. المتبقّي يظهر بالأحمر إن كان أكبر من صفر.
أكثر برنامج محاسبة بسيط يفشل لأنه يسجّل الفاتورة بمبلغ واحد ويعتبرها مقبوضة. في السوق العراقي أغلب البيع بدفعات — والنظام الذي لا يعرف «دفعة أولى» لا يصلح.
الخطوة 4 كشف الحساب — مدين ودائن ورصيد متحرّك
أضف شاشة «كشف حساب»: تختار جهة فتعرض كل حركاتها مرتّبة بالتاريخ في جدول بخمسة أعمدة: التاريخ، البيان، مدين، دائن، الرصيد. الفواتير تدخل في عمود «مدين» والتسديدات في «دائن»، والرصيد يُحسب تراكمياً سطراً بعد سطر. في الأسفل سطر «الرصيد النهائي». أضف زر طباعة يطبع الكشف وحده بلا القائمة الجانبية.
لاحظ صياغة الطلب: لم نقل «اعمل نظام قيد مزدوج». قلنا ما نريد رؤيته في الجدول، والوكيل استنتج المنطق. صف الشاشة لا المصطلح.
الخطوة 5 المصروفات مبوّبة
أضف شاشة «المصروفات» بنموذج إدخال (التاريخ، الباب، البيان، المبلغ). فوق القائمة، جدول ملخّص يجمع مصروفات الشهر حسب الباب ويعرض لكل باب مبلغه ونسبته المئوية من المجموع. أدخل مصروفات شهر واقعية لشركة عراقية صغيرة: إيجار، رواتب، كهرباء ومولّدة، إنترنت، نقل، متفرقات.
الخطوة 6 التقرير الذي يكشف الحقيقة
وهنا بيت القصيد. اطلب جدولين لا جدولاً واحداً:
أضف شاشة «تقرير الشهر» فيها جدولان منفصلان: الأول «قائمة الدخل»: الإيرادات، ناقص تكلفة المشتريات، ناقص كل باب مصروف على حدة، ثم «صافي الربح». الثاني «الحركة النقدية الفعلية»: المقبوض فعلاً من العملاء، والمدفوع فعلاً للموردين، والمصروفات المدفوعة، ثم «صافي النقد». واكتب تحتهما سطراً يشرح أن الأول يقيس أداء العمل والثاني يقيس ما في الصندوق.
والنتيجة في الصورة الأولى من هذا المقال: ربح 1,785,000 دينار، ونقد سالب 895,000 دينار. الشركة رابحة فعلاً — لكن مليونين ونصف من مبيعاتها ما زالت ديوناً عند العملاء، بينما الرواتب والإيجار خرجت نقداً. هذه ليست مشكلة محاسبية، بل مشكلة تحصيل؛ ولن تراها أبداً في نظام يعرض رقماً واحداً.
الخطوة 7 الحماية والتشغيل الدائم
بيانات الحسابات أخطر من بيانات المخزون. ثلاثة طلبات قبل أن تعتمد على النظام:
1. أضف تسجيل دخول، وامنع فتح أي صفحة بلا تسجيل. 2. اجعل البرنامج خدمة نظام تعمل عند الإقلاع وتعيد تشغيل نفسها. 3. أضف مهمة يومية تنسخ ملف قاعدة البيانات إلى مجلد النسخ باسم فيه تاريخ اليوم، وتحتفظ بآخر 30 نسخة.
0 23 * * * cp ~/acc/acc.db ~/backups/acc-$(date +\%F).db
0 23 * * * find ~/backups -name 'acc-*.db' -mtime +30 -delete
انسخ خارج السيرفر أيضاً. نسخة على القرص نفسه تحميك من خطأ بشري، لا من فقدان الجهاز. حمّل نسخة أسبوعية إلى حاسبتك أو إلى تخزين خارجي — وجرّب استرجاعها مرة واحدة على الأقل، لأن نسخة لم تُختبر ليست نسخة.
خمسة دروس من بناء هذا النظام
| الدرس | التفصيل |
|---|---|
| صف الشاشة لا المصطلح | «التاريخ، البيان، مدين، دائن، الرصيد» أنتجت كشف حساب سليماً بلا ذكر «القيد المزدوج» |
| المال رقم صحيح | قاعدة واحدة في ملف المشروع تمنع فروق التقريب التي لا تُكتشف إلا بعد أشهر |
| جدولان لا جدول | الربح والنقد رقمان مختلفان، وخلطهما هو أصل «الشغل ماشي بس الفلوس ما موجودة» |
| الفاتورة ثلاثة أرقام | المبلغ والمدفوع والمتبقّي — لأن السوق يعمل بالدفعات |
| الاتجاه يُختبر بالعين | علامة السالب انقلبت في الواجهة العربية؛ لا تكتشف هذا إلا بالنظر إلى الشاشة |
لماذا يهمّ العتاد هنا تحديداً
التقارير المحاسبية تقرأ كل الحركات وتجمعها في كل فتح للصفحة. مع مرور السنوات يصبح هذا آلاف السجلات، وعندها يظهر الفرق بين سيرفر وآخر بوضوح.
وتذكّر النسبة التي كرّرناها في هذه السلسلة: زمن الشبكة بين العراق وسيرفر خارجي يقع بين 70 و150 ملّي ثانية، أما زمن توليد الصفحة داخل السيرفر فيتراوح بين 150 ملّي ثانية وأكثر من ثانيتين حسب العتاد. المسافة تكلّفك عشرات الملّي ثانية، والعتاد الضعيف يكلّفك آلافاً. اسأل عن المعالج وعدد الأنوية ونوع التخزين — لا عن المدينة وحدها.
ماذا بعد؟
توسعة هذا النظام تجري بالمنطق نفسه، طلب لكل إضافة: تسجيل دفعات التحصيل من داخل الفاتورة، وتنبيه بالفواتير المتأخّرة أكثر من 30 يوماً، وطباعة الفاتورة بترويسة الشركة، وتصدير التقرير إلى ملف، وحساب بالدولار إلى جانب الدينار لمن يتعامل بالعملتين.
وفي المقالات القادمة: نظام إدارة عيادة، ونظام مدرسة، ومتجر إلكتروني بالدفع عند الاستلام.
للبدء: اختر باقة VPS ثم دليل التنصيب والتفعيل.