تطوير نظام مكتبي بسيط لإدارة مكتبة باستخدام C# وWinForms

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

الاحترافية بالتعامل
التواصل والمتابعة
جودة العمل المسلّم
الخبرة بمجال المشروع
التسليم فى الموعد
التعامل معه مرّة أخرى
Muhammad H.
  • صاحب المشروع
تقييمي للمهندس رامي جمال:
الحمد لله خلّصنا المشروع بنجاح كامل، وبصراحة أنا في منتهى الرضا عن مستوى شغله.
رامي اجتهد فوق المتوقع، مش بس سلّم اللي عليه، ده خطّط وقسّم المشروع بشكل احترافي، وكان عنده نظرة واضحة لكل تفصيلة.
تقبّل مني كل ملاحظات المراجعة بصدر رحب جدًا، وكان متعاون طول الوقت بروح ودودة وفريق عمل فعلي.
بصراحة، بقيت مستني ألاقي مشروع Desktop جديد علشان أشتغل معاه تاني من كتر ما انبسطت من أسلوب تعامله وشغله النظيف.
أنصح أي حد محتاج مبرمج محترف فعلاً يتعامل مع رامي بكل ثقة

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

وصف المشروع:

مطلوب تطوير نظام مكتبي (Desktop Application) بسيط لإدارة مكتبة صغيرة وفقًا للمواصفات المحددة أدناه.

يهدف النظام إلى تمكين إدارة بيانات الكتب، المؤلفين، دور النشر، والعملاء، مع دعم عمليات استعارة وإرجاع الكتب، بالإضافة إلى توفير نظام لإدارة المستخدمين والصلاحيات.

التركيز على تنفيذ نسخة MVP أولى قابلة للاستخدام الفوري مع الالتزام ببناء الكود بطريقة نظيفة ومنظمة.

️ المواصفات الوظيفية (Functional Specifications):

1. إدارة المؤلفين:

إضافة مؤلفين مع إمكانية تعديل وحذف بياناتهم.

البحث عن مؤلفين بالاسم.

2. إدارة دور النشر:

إضافة دور نشر مع إمكانية تعديل وحذف بياناتهم.

البحث عن دور نشر بالاسم.

3. إدارة العملاء:

إضافة عملاء مع إمكانية تعديل وحذف بياناتهم.

البحث عن عملاء بالاسم أو رقم الهاتف.

4. إدارة الكتب:

إضافة كتب مع ربط كل كتاب بمؤلف واحد أو أكثر ودار نشر واحدة.

تعديل أو حذف بيانات الكتب.

البحث عن الكتب بالعنوان أو المؤلف أو دار النشر.

5. تسجيل عمليات الإعارة والإرجاع:

تسجيل استعارة كتاب لعميل مع تحديد تاريخ الاستعارة وتاريخ الإرجاع المتوقع.

تسجيل إرجاع كتاب وتحديث حالته تلقائيًا إلى "متاح".

6. إدارة حالة الكتب:

تحديث حالة الكتب تلقائيًا بين "متاح" و"مستعار" بناءً على الإعارات والإرجاعات.

7. عرض التقارير:

تقرير بالكتب المتوفرة حاليًا.

تقرير بالكتب المستعارة حاليًا مع تفاصيل العملاء.

8. إدارة المستخدمين والصلاحيات:

إضافة مستخدمين مع تحديد دور لكل مستخدم (مدير النظام أو أمين مكتبة).

تطبيق الصلاحيات تلقائيًا حسب الدور المحدد.

️ المواصفات الفنية (Technical Requirements):

1. معمارية النظام:

الالتزام بهيكلية 3-Tier Architecture:

UI Layer

BLL (Business Logic Layer)

DAL (Data Access Layer)

2. أسلوب كتابة الكود:

الالتزام بمبادئ Clean Code.

استخدام أسماء واضحة ومنظمة.

3. توثيق الكود:

كتابة تعليقات مختصرة لكل Class ووظيفة رئيسية.

4. التعامل مع الأخطاء:

استخدام Try-Catch مع رسائل أخطاء واضحة ومفهومة.

5. إدارة قواعد العمل (Business Rules):

لا يمكن حذف عميل لديه كتب مستعارة.

لا يمكن استعارة كتاب غير متاح أو مستعار ولم يُرجع بعد.

لا يمكن حذف كتاب عليه استعارات نشطة.

لا يمكن حذف مؤلف أو دار نشر مرتبط بكتب موجودة.

(التعامل مع هذه القيود يتم بطريقة Smart Deletion ضمن BLL بدون فصل فقرة مستقلة.)

6. اختبار الوحدات (Unit Testing):

تنفيذ اختبارات وحدات (Unit Tests) لأهم الوظائف في طبقة BLL.

استخدام إطار عمل MSTest.

التركيز على تمثيل عملية إنتاج منتج حقيقي.

7. الحماية والأمان:

التحقق من صلاحيات المستخدم قبل تنفيذ أي عملية.

حفظ كلمات المرور بطريقة آمنة (يفضل Hashing).

8. الأداء:

دعم تشغيل مكتبة تحتوي حتى 5000 كتاب و1000 عميل بكفاءة عالية.

9. النسخ الاحتياطي:

توفير وظيفة لنسخ قاعدة البيانات يدويًا مع تسمية النسخة بالتاريخ والوقت.

10. تنصيب النظام:

تسليم Installer File واحد (Setup.exe) يثبت التطبيق كاملًا تلقائيًا.

11. توافق نظام التشغيل:

دعم العمل على Windows 10 وWindows 11 بدون مشاكل.

12. استلام الكود المصدري:

تسليم الكود المصدري كاملًا ومنظمًا وقابل لإعادة البناء.

️ المواصفات التقنية (Technological Specifications):

1. لغة البرمجة:

C# (.NET Framework)

2. إطار العمل:

WinForms

3. قاعدة البيانات:

SQLite

4. مكتبة ORM:

Dapper ORM عبر NuGet لإدارة الاتصال بقاعدة البيانات.

5. بيئة التطوير:

Visual Studio 2019 أو إصدار أحدث

6. إدارة التقارير:

استخدام DataGridView لعرض التقارير بدون الحاجة إلى أدوات تقارير متقدمة.

7. مكتبات إضافية:

Dapper ORM فقط كمكتبة خارجية معتمدة.

8. دعم أنظمة 32-بت و64-بت:

إعداد المشروع على Any CPU مع تفعيل Prefer 32-bit لضمان دعم Windows 10/11 32-bit و64-bit.

9. ملف التعليمات:

تسليم ملف README.txt مع خطوات التثبيت والتشغيل وأي ملاحظات أخرى.

شروط التسليم وحقوق ملكية الكود:

1. تسليم الكود المصدري:

يجب تسليم كامل الكود المصدري للمشروع (Source Code) مع ملفات البناء جاهزة.

2. حقوق الملكية:

بعد استلام الكود المصدري، تؤول جميع حقوق استخدام الكود والتعديل عليه والتصرف فيه للعميل بشكل كامل ودائم.

لا يحق للمستقل إعادة استخدام الكود أو بيعه أو نشره أو استغلاله بأي صورة دون إذن خطي مسبق من العميل.

ملاحظة هامة بخصوص تقييم العروض:

سيتم تقييم العروض بناءً على:

دقة الإجابة على الأسئلة المرفقة بالمشروع.

جودة ملف الأعمال (Portfolio) الخاصة بالمستقل.

مدى الالتزام بالمواصفات المحددة.

# ملحوظة: السعر وحده لن يكون المعيار الأساسي لاختيار العرض المناسب.

Windows 10 وأعلى (يدعم Windows 10 وWindows 11)

C# (.NET Framework) + WinForms + SQLite + Dapper ORM

# ملاحظة: الروابط التالية للتوضيح فقط لأفكار مشابهة، مع العلم أن المشروع المطلوب نسخة مبسطة خاصة حسب المواصفات المرفقة.

https://github.com/textbr...

https://www.youtube.com/p...

- الكود المصدري الكامل للمشروع (مرتب ومنظم)

- ملف تنصيب واحد (Installer - Setup.exe)

- قاعدة البيانات (SQLite) مرفقة وجاهزة للتشغيل

- ملف README.txt يحتوي على تعليمات التثبيت والتشغيل

- اختبارات وحدات (Unit Tests) مغطية لأهم قواعد العمل الأساسية

العروض المقدمة

السلام عليكم، تحية طيبة، اطلعت بتفاصيل دقيقة على مشروعكم المحترم الخاص ببناء نظام مكتبي (Desktop Application) لإدارة مكتبة صغيرة، مع جميع الوظائف المطلوبة مثل إ...

السلام عليكم و رحمة الله و بركاته أهلا بك أخي الكريم محمد معك رامي جمال مطور تطبيقات سطح المكتب خاصة تلك التي تتعامل مع البيانات و العمليات عليها من اضافة و حذف...

السلام عليكم ورحمة الله وبركاته، انا يسري عصام مهندس برمجيات و مطور تطبيقات , لقد قرأت بعناية فائقة تفاصيل مشروع نظام إدارة المكتبة المكتبي والمواصفات الوظيفية ...

السلام عليكم ورحمة الله وبركاته أنا مهندس برمجيات متخصص في تطوير تطبيقات سطح المكتب باستخدام لغة C# و Python. ولدي خبرة كبيرة في تصميم وإدارة قواعد البيانات مثل...

السلام عليكم ، انا مازن اليوسف مهندس برمجيات بخبرة كبيرة بلغة البرمجة C# يمكن تنفيذ المطلوب انشاءالله (فقط نقطة ال unit testing لم اقم بتنفيذها مسبقا ولكن يمكن ...

قبولك لهذا العرض يعتبر اتفاقاً بينك وبين المستقل وسيبقى موقع مستقل وسيطاً بينكما حتى تسليم المشروع. لن تتمكن من تغيير العرض أو إلغائه لاحقًا لذلك تأكد من اختيارك للعرض المناسب باتّباع النصائح التالية:

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

المستقل غير متاح لاستلام مشاريع، يمكنك ارسال تنبيه له لقبول العرض وإعادة المحاولة بعد بضعة ساعات، أو اختيار عرضاً من مستقل آخر.