لدي نظام مكتبي (Desktop Application) مبني بالتقنيات التالية:
Electron 28
React 18 + Vite
SQLite كقاعدة بيانات محلية
النظام يعمل بشكل عام، لكنه يحتاج إلى تحسين معمّق للكود، رفع مستوى الجودة، زيادة الاستقرار، وتحسين الأداء ليعمل بكفاءة تامة مع حجم بيانات تقريبي قدره 100 ألف صف تشمل الإدخال، التعديل، البحث، والفلترة والتصدير.
المطلوب من المطوّر (المهام بالتفصيل)
1) تنظيف المشروع وتهيئة بيئة العمل
مراجعة المشروع كاملًا (Frontend + Backend داخل Electron).
إزالة الاعتماد نهائيًا على مكتبة better-sqlite3 من:
package.json
كامل الملفات (imports / requires / أكواد معلّقة)
التأكد أن المشروع يعمل فقط باستخدام الاعتماد الحالي على SQLite (sqlite/sqlite3).
2) تحسين طبقة قاعدة البيانات (SQLite)
التأكد من وجود اتصال واحد فقط (Single DB Connection) يعاد استخدامه عبر كامل التطبيق.
ضبط ملف قاعدة البيانات ليكون:
واضح، بسيط، واستخدامه آمن مع async/await
يحتوي على try/catch واضح في تهيئة الاتصال وتشغيل الجداول
إنشاء فهارس (Indexes) للحقول المستخدمة في البحث لضمان سرعة عالية مع 100 صف.
3) تحسين منطق العمليات داخل Electron (main.js)
مراجعة كل IPC handlers وتنظيمها داخل try/catch.
عند حدوث خطأ:
تسجيله باستخدام electron-log (أو النظام الحالي).
إرجاع قيمة آمنة للواجهة بدون أن ينهار التطبيق.
تحسين عمليات التحديث والإضافة بحيث:
لا تسبب تهنيق أو تجمّد.
أي خطأ في جزء من العملية لا يؤدي لكسر التطبيق بالكامل.
إضافة معالجات أخطاء عامة:
process.on('unhandledRejection', ...);
process.on('uncaughtException', ...);
4) الأداء مع 100 صف بيانات
ضمان أن التطبيق يعمل بسلاسة عند:
إدخال 100الف صف
البحث والفلترة بـ 100 الف صف
تحميل البيانات في لوحة التحكم
التصدير إلى Excel/PDF
وضع حماية بسيطة في حال زاد حجم البيانات مستقبلًا (مثل تنبيه في حال تجاوز العدد المتوقع).
5) تحسين واجهة React بشكل مناسب
التأكد أن مكوّنات الواجهة تعمل بكفاءة ولا تعيد التحميل أو المعالجة بشكل غير ضروري.
استخدام useMemo و useCallback حيث يفيد فقط (بدون تعقيد زائد).
إزالة أي console.log كبيرة أو حساسة داخل الواجهة.
6) الأمان والتحسينات المكملة
إزالة أي كلمات مرور مكتوبة داخل الكود واستبدالها بحل أكثر أمانًا (تخزين في ملف إعدادات مشفّر أو داخل قاعدة البيانات).
تنظيف وترتيب الملفات، حذف الأكواد المتكررة أو غير المستخدمة، توحيد الأسلوب (Code Style).
7) الاختبار والتسليم
المطلوب تنفيذ اختبار فعلي يشمل:
إدخال ~100 صف
البحث بقيم مختلفة
تعديل وحذف
التصدير إلى Excel
إنشاء PDF لعدد من السجلات
التأكد من عدم ظهور أي:
تجمّد
بطء
أخطاء غير معالجة
انهيارات للتطبيق
التسليم النهائي يشمل:
الكود النهائي المنظّم والمحسّن
ملف مختصر يوضح:
ما تم تعديله
كيف تشغّل المشروع وتبني نسخة التنفيذ (build)
أي توصيات مستقبلية
شروط المتقدم
خبرة مثبتة في:
Electron (أساسي جدًا)
React + Vite
SQLite (sqlite/sqlite3) داخل Node/Electron
القدرة على فهم الكود الحالي وتحسينه—not إعادة كتابة المشروع من الصفر.
التفرّغ التام خلال مدة التنفيذ (لا يوجد دوام، دراسة، أو مشاريع أخرى خلال الفترة).
الاهتمام بالتفاصيل، وضبط الأخطاء، وتحسين الاستقرار.
مدة التنفيذ المتوقعة
بين 7 إلى 14 يوم عمل فعلي — حسب قدرة المطوّر وخبرته.
أسئلة للمتقدمين
هل لديك أمثلة أو مشاريع سابقة باستخدام Electron + SQLite؟
ما المدة التي تتوقعها لإتمام العمل بجودة عالية؟
ما نظام التشغيل الذي تعمل عليه عادة؟
هل تستطيع الالتزام بالتفرّغ الكامل خلال مدة المشروع؟
السلام عليكم، أتقدم للعمل على مشروعكم لأنه مناسب لخبرتي. لدي خبرة في تطوير تطبيقات باستخدام Electron و React و Vite و SQLite، إضافة إلى خبرة في تحسين الأداء وتن...
مؤمرحبا سيدي ، لقد رأيت عرضك للتو ، و قد اعجبي مشروعك هذا و اريد مساعدتك فيه لدي خبرة في تطبيقات سطح المكتب باستخدام sqlite و electron و ايضا tauri , و كشخص لدي...
مرحبا، شكرا على تفاصيل المشروع. اطلعت على المتطلبات بدقة، وهذا عرضي لتنفيذ العمل وتحسين التطبيق ليعمل بأعلى كفاءة ممكنة، مع ضمان استقرار تام حتى مع وصول البيانا...