نظام حجز المواعيد الطبية (Medical Appointment System)
نبذة مختصرة
منصة رقمية تُتيح للمرضى حجز المواعيد، وللأطباء إدارة جداولهم، وللمسؤولين المشرفين التحكم بالنظام بالكامل.
المتطلبات الأساسية
Node.js، TypeScript، Express.js
MongoDB مع Mongoose (نموذجين/Schemas على الأقل)
عمليات CRUD كاملة على مورد واحد على الأقل
توثيق وتسجيل دخول بـ JWT وتشفير بـ bcrypt
حماية المسارات برمجياً (Protected Routes & Middlewares)
متغيرات بيئة dotenv وتوثيق API بـ Swagger
رفع الكود على GitHub والنشر على بيئة سحابية (Render/Railway)
أنواع المستخدمين والصلاحيات
المريض (Patient): استعراض الأطباء، حجز وإلغاء المواعيد، وعرض السجل.
الطبيب (Doctor): إدارة الجداول الخاصة، وتأكيد أو إتمام أو إلغاء المواعيد.
المسؤول (Admin): إدارة حسابات الأطباء، وعرض كافة المواعيد، وإدارة المستخدمين.
الكيانات الأساسية
المستخدم (User): الاسم، البريد، كلمة المرور، الدور.
ملف الطبيب (Doctor Profile): التخصص، الخبرة، العنوان، السعر، ساعات العمل.
الموعد (Appointment): المريض، الطبيب، التاريخ، الوقت، الحالة، ملاحظات.
الجدول (Schedule): الطبيب، اليوم، الأوقات المتاحة.
قواعد العمل الأساسية
منع تكرار حجز نفس الفترة للمريض أو تعارض الأوقات للطبيب.
الحجز للمواعيد المستقبلية فقط، والإلغاء متاح قبل الموعد.
إلغاء الموعد يحرر الفترة الزمنية تلقائياً.
يمنع تعديل أو إلغاء المواعيد المكتملة.
يمنع حذف جدول يحتوي على مواعيد مستقبلية مؤكدة.