اولا تم بناء المشروع على :
.Net FrameWork 4.6
تم استخدام :
C# (WinForms)
Sql Server (DataBase)
GunaUi
ثانيآ فكرة التطبيق :
هو عبارة عن نظام إدارة رخص السائقين ويحتوي على هذه الخدمات الأساسية/
1- People Managment
2- Users Managment
3- Drivers Managment
4- Applications
تستطيع في قسم Applications تقديم طلبات على :
1- Local Driving License
2- International License (بشرط ان يكون معك رخصة محلية مفعلة من الفئة الثالثة)
ولديك 7 طلبات تستطيع التقديم فيها في هذا النظام :
1- New Local Driving Application
2- Renew Local Driving License
3- Replacement For Lost Local License Application
4- Replacement For Damaged Local License Application
5- Release Detained Driving License Application
6- New International Driving License Application
7- Retake Test Application
الان لنسترسل في قسم طلبات الرخص المحلية او Local Driving Licenses Applications /
في البداية عليك تقديم طلب من نافذة Add New Local Driving Licenses Application وتتكون من :
1- Find Person Control وهي عبارة عن كنترول قمت ببنائها بنفسي وظيفتها ان تظهر معلومات المواطن
اما عن طريق رقمة الوطني او عن طريق المعرف الخاص فيه "ID" واذا لم يكن هنلك مواطن مسجل في هذا النظام لديك زر في هذه الكنترول
يقوم بفتح Form او نافذة لاضافة مواطن جديد وعند اضافته بنجاح تقوم بارجاع ID الخاص فيه إلى الكنترول Find Person
وسيتم ملئ معلومات المواطن تلقائيآ
2- عند تحديد المواطن الذي سيقدم الطلب سترى في الصفحة التي تليها معلومات الطلب وايضا يعطيك جميع خيارات Licneses المتوفرة
او بمعنى آخر License Classes وسيطلب منك اختيار نوع محدد.
الانواع المتوفرة في النظام :
- Small Motorcycle
- Heavy Motorcycle License
- Ordinary driving license
- Commercial
- Agricultural
- Small and medium bus
- Truck and heavy vehicle
طبعآ عند اختيار نوع الرخصة وحفظ الطلب سيقوم النظام بالتحقق من :
- عدم وجود طلب مسبق مفعل او Active لهذا الشخص في نفس نوع رخصة القيادة
- عدم وجود رخصة قيادة مفعله او Active لهذا الشخص في نفس نوع رخصة القيادة
اذا تحقق احدى الامرين سيظهر Error للمستخدم ويخطره بالأمر ويطلب منه إدخال بيانات صحيحة.
وأيضآ يوجد في النظام نافذة Manage Local Driving License Applications ليستطيع المستخدم رؤية جميع الطلبات من هذا النوع في مكان
واحد حتى يسهل عليه إدارتها وتتكون هذه الصفحة من :
DataGridView لعرض جميع الطلبات من هذا النوع
فلتر للبحث في هذه الداتا وتستطيع فلترة البحث عن طريق :
1- Local Driving License Application ID
2- National Number
3- FullName
4- Ststus Of Application (New - Canceled - Completed)
الان ساوضح كيفية التعامل مع هذه الطلبات :
اذا قمت بالضغط على زر الماوس الايمن على إحدى الريكوردز الموجودة في DtatSet ستظهر Context Menu Strip وفيها عدة خيارات /
1- Show Details
وعند الضغط عليها ستنقلك إلى نافذة أخرى تقوم بعرض معلومات الطلب بالتفصيل مع معلومات المقدم لهذاالطلب
2- Add New
وعند الضغط عليها ستنقلك إلى نافذة Add New Local Driving License Application التي قمت بشرحها في الأعلى
3- Update
وعند الضغط عليها ستنقلك لنفس النافذة Add New Local Driving License Application لكن المميز في هذه النافذة ان فيها 2 Modes
Add New Mode & Update Mode وعن طريق Functionality معينه هي تقرر ما اذا كان تم إستدعائها للإضافة او للتعديل
4- Delete
بكل بساطة تقوم بحذف الطلب الذي تكون حالتة New فقط بعد ان يتم ظهور إشعار للمستخدم لتاكيد الحذف
اما اذا كان Canceled او Completed لن يتم حذفه
5- Cancel
يقوم بإلغاء الطلب بعد ان يتم ظهور إشعار للمستخدم لتاكيد الإلغاء
6- Sechdule Tests
وهي الاختبارات التي على المستخدم إجتيازها لأخذ الرخصة المحلية وعند الضغط عليها تظهر Context Menu اخرى فيها 3 خيارات /
- Vision Test
- Written Test
- Streat Test
عند الضغط على إحداها ستنقلك إلى نافذة أخذ موعد الإختبار وعندما يحين موعد الاختبار وينتهي تدخل إلى هذه النافذة وتحدد نتيجة هذا
الإختبار وطبعآ هنلك ميزات كثيرة هنا منها :
- لا يسمح بإضافة موعد اذا كان هنلك موعد Active لهذا الطلب ولم يتم تحديد نتيجنه وسيقوم بإظهار Error للمستخدم ليعلمه بذلك
- لا يسمح بإضافة موعد اذا نجح مقدم الطلب في هذا الإختبار
- تستطيع تغيير تاريخ الموعد اذا لم يتم أخذه
طبعا في النظام لا يمكنك عمل اختبار قبل الآخر يجب عليك عملهم بالترتيب لذلك في البداية يكون :
Vision Test = مفعل
Written Test = غير مفعل
Streat Test = غير مفعل
واذا قمت بإجتياز Vision Test سيتحقق النظام من ذلك ويجعله UnEnabled ويقوم بتفعيل الإختبار الذي يليه وإذا اتممت جميع الإختبارات
سيتم جعل Sechdule Tests غير مفعلة لانه اتم جميع الإختبارات
7- Isuue Driving License For First Time
عند الضغط عليها ستنقلك إلى نافذة إصدار الرخص وستقوم بإصدار رخصه لمقدم الطلب وطبعآ Isuue Driving License For First Time
ستكون UnEnabled إلى ان يتم إكمال جميع Tests بعدها سيتم تفعيل هذا الخيار بعدما تقوم بإصدار الرخصة سيتم إلغاء تفعيل هذا الخيار
وتفعيل الخيار التالي Show License Info
8- Show License Info
عند الضغط عليها ستنقلك إلى نافذة عرض معلومات الرخصه الخاصة بمقدم الطلب وستكون في بادئ الامر كما قلت في الأعلى UnEnabled
إلى ان يتم عمل Isuue Driving License For First Time بعدها سيتم تفعيل هذا الخيار
9- Show Person Licenses History
عند الضغط عليها ستنقلك إلى نافذة عرض جميع الرخص الخاصة بهذا الشخص
وهذه التفاصيل المهمه في Local Driving License Applications.
الان لننتقل إلى Renew Local Driving License /
ساقوم بشرحها بشكل مختصر حتى لا أطيل بكل اختصار هي خدمة من خلالها يستطيع العميل تجديد رخصة المنتهيه
وتتكون هذه النافذة من Find Local Driving License Control قمت بعملها بنفسي ووظيفتها نفس Find Person Info
ومعلومات هذا الطلب في الأسفل وعند الحفظ يتحقق النظام من ان الرخصة منتهيه اذا لم تنتهي لن يسمح للمستخدم بتجديدها.
الان لننتقل إلى Replacement For Lost Or Damaged Local License Application /
بكل اختصار هي خدمة من خلالها يستطيع العميل أخذ رخصة بدل ضائع او بدل تالف
وتتكون هذه النافذة ايضا من Find Local Driving License Control ومعلومات هذا الطلب في الأسفل وعند الحفظ يتحقق النظام
ما اذا كانت Active ام لا واذا لم تكن مفعلة لن يسمح النظام بهذا الطلب.
الان لننتقل إلى Release Detained Driving License Application /
هي خدمة يستطيع المستخدم من خلالها فك حجز رخصته المحجوزه وطبعا يتاكد النظام اولا انها Active وانها محجوزه من الأساس.
الان لننتقل إلى New International Driving License Application /
بكل اختصار هي نافذة من خلالها يستطيع العميل إصدار رخصة دولية ويشترط تحقق هذه الشروط :
1- ان يمتلك رخصة محلية
2- يشترط على الرخصة المحلية ان تكون من الفئة الثالثة او Ordinary driving license
3- ويشترط ان تكون الرخصه المحلية مفعله او Active
مالم تتحقق هذه الشروط سيتم منع إصدار الرخصة الدوليه وسيتم طلب معلومات صحيحة.
يوجد أيضا في النظام اقسام أخرى :
1- Manage Drivers
2- Manage Users
3- Manage People
4- Manage Application Types
5- Manage Tests Types
6- Account Settings
اتمنى انني شرحت بشكل واف وكافي واريد ان انوه انني اتبعت طريقة Three Tier Architecture
- Presentaion Layer
- Business Layer
- Data Access Layer
وفي هذا التطبيق اهمتيت في الاكثر على Logic ولم اهتم بشكل كبير في التصميم وهذا كان اخر مشروع عملته
شكرا...
اسم المستقل | عبدالله ا. |
عدد الإعجابات | 0 |
عدد المشاهدات | 7 |
تاريخ الإضافة | |
تاريخ الإنجاز |