فكرة المشروع: نظام حجز مواعيد في مركز حكومي إلكتروني
(بطاقة شخصية، تجديد جواز) للحصول على خدمات معينة.
الهدف: إنشاء منصة تساعد المواطنين على حجز المواعيد بشكل إلكتروني.
تعاون المستخدمين:
1. المستخدم العادي (Citizen):
• تسجيل/تسجيل دخول حساب
• حجز موعد مدخل
• عرض حجوزاته
• إلغاء الموعد
• تحديث ملفه الشخصي
2. الموظف (Clerk):
• مشاهدة كل الحجوزات المقدمة
• قبول أو رفض الحجز
• كتابة ملاحظات لكل حجز
3. المسؤول (Admin):
• CRUD على (إضافة- تعديل- حذف خدمة)
• إدارة الموظفين والمستخدمين
• إدارة الإعدادات (عدد الحجوزات اليومية، أوقات العمل، أيام العطل)
المتطلبات التقنية:
ميزات التقنية
تسجيل الدخول والمصادقة Djoser + JWT
واجهات API Django REST Framework
تحميل صورة شخصية DRF + ImageField + Pillow
تحديد الأدوار والصلاحيات Django Groups + Permissions
واجهة تحكم للمسؤول Django Admin + صفحات خاصة بالمسؤول
تنبيهات عند الموافقة/الرفض أو إلغاء الموعد
واجهة جميلة Tailwind CSS + AOS (مع إمكانية Vue لاحقًا)
حماية البيانات، فقط المستخدم يرى حجوزاته، الموظف لا يطلع إلا على مواعيده
تحقق من الوقت/زمن الخدمة نظام مواعيد متقدم
توثيق Swagger / Postman + شرح لكل endpoint
قاعدة البيانات (بشكل مبدأي):
• User (من Djoser)
• CitizenProfile → مرتبط بـ user ويشمل الاسم/البيانات/الصورة الشخصية
• EmployeeProfile → نفس الشيء
• Service (بطاقة شخصية - جواز سفر - ... إلخ)
• Appointment (مرتبط بـ User و Service ،الحالة، التاريخ، الملاحظات)
السيناريو الوظيفي:
كمستخدم:
1 . أسجل دخول
2 . أختار خدمة (جواز سفر)
3 . أختار يوم وساعة متاحة
4 . أرسل طلب الحجز
5 . أشاهد حجوزاتي وحالتها (منتظر– مقبول– مرفوض)
كموظف:
1 . أسجل دخول
2 . أرى كل الحجوزات المقدمة
3 . أقبل أو أرفض الحجوزات
4 . أضيف ملاحظات (مثال: "إحضار مستندات أصلية")
كمسؤول:
1 . أدير كل الخدمات المتوفرة
2 . أضيف موظفين
3 . أحدد عدد الحجوزات المسموح بها يوميًا
4 . أعدل الأوقات