# Hospital Management System – Java & JavaFX
## نبذة عن المشروع
قمت بتطوير نظام متكامل لإدارة المستشفى باستخدام **Java** و **JavaFX**، يهدف إلى تنظيم وإدارة بيانات المرضى والأطباء والمواعيد من خلال واجهة رسومية سهلة الاستخدام.
تم تصميم المشروع باستخدام مفاهيم **Object-Oriented Programming (OOP)** مع تطبيق مبادئ الوراثة، التغليف، الواجهات، والاستثناءات المخصصة، بالإضافة إلى حفظ واسترجاع البيانات باستخدام الملفات.
## أهم وظائف النظام
* إدارة بيانات المرضى:
* إضافة مريض جديد
* عرض بيانات المرضى
* التحقق من عدم تكرار Patient ID
* إدارة بيانات الأطباء:
* إضافة طبيب جديد
* تحديد التخصص ورقم الهاتف
* عرض بيانات الأطباء
* التحقق من عدم تكرار Doctor ID
* إدارة المواعيد:
* إنشاء موعد جديد
* اختيار المريض والطبيب
* تحديد التاريخ والوقت
* البحث عن موعد باستخدام Appointment ID
* تعديل بيانات الموعد
* إلغاء الموعد
* عرض جميع المواعيد
* نظام منع تعارض المواعيد:
* التحقق من عدم حجز الطبيب نفسه في نفس التاريخ والوقت
* استخدام Custom Exception للتعامل مع تعارض المواعيد
* حفظ البيانات:
* حفظ بيانات المرضى والأطباء في ملفات
* حفظ المواعيد في ملفات
* تحميل البيانات تلقائيًا عند تشغيل البرنامج
## التقنيات المستخدمة
* Java
* JavaFX
* Object-Oriented Programming (OOP)
* Inheritance
* Encapsulation
* Interfaces
* ArrayList
* Exception Handling
* Custom Exceptions
* File Handling
* Text File Storage
* JavaFX TableView
* JavaFX Forms & Dialogs
* CSS Styling
## تصميم الواجهة
تم تطوير واجهة رسومية باستخدام JavaFX تحتوي على:
* Dashboard
* Sidebar Navigation
* Patient Management
* Doctor Management
* Appointment Management
* Search & Update Functions
* Tables لعرض البيانات
* Forms لإضافة وتعديل البيانات
* CSS لتنسيق الواجهة
## الهدف من المشروع
يهدف المشروع إلى تطبيق مفاهيم Java بشكل عملي من خلال بناء نظام إداري متكامل، مع التركيز على تنظيم الكود، استخدام البرمجة الكائنية، التعامل مع الملفات، والتحقق من صحة البيانات وتعارض المواعيد.
المشروع قابل للتطوير مستقبلًا بإضافة قاعدة بيانات مثل MySQL، نظام تسجيل دخول للمستخدمين، صلاحيات مختلفة، وتقارير وإحصائيات متقدمة.