كيف يشتغل السيستم خطوة بخطوة
1.
المستخدم يدخل على صفحة Login.
2.
يكتب username/email وpassword.
3.
النظام يتحقق من:
◦
كلمة المرور
◦
حالة الحساب
◦
القفل
◦
عدد المحاولات
4.
إذا كان MFA مفعّلاً، يرسل OTP على الإيميل ويحوّلك إلى صفحة التحقق.
5.
بعد إدخال OTP الصحيح، يتم إنشاء session آمنة مرتبطة بالجلسة الحالية.
6.
إذا كان الحساب عليه must_change_password، يتم تحويله مباشرة إلى تغيير كلمة المرور.
7.
بعد الدخول، يصل المستخدم إلى Dashboard حسب صلاحياته.
8.
عند إنشاء تكت:
◦
يتولد رقم مثل TKT-2026-000001
◦
تُحفظ الشركة والقسم والحالة والأولوية والمكلّف
◦
يُسجل activity log وaudit log
◦
تُنشأ in-app notifications
◦
يُرسل email للمعنيين
9.
عند أي update على التكت مثل:
◦
تغيير حالة
◦
تعيين أو إعادة تعيين
◦
تعليق عام
◦
ملاحظة داخلية
◦
رفع ملف
◦
دمج تكت النظام يقوم بـ:
◦
تحديث activity timeline
◦
إنشاء notification داخل النظام
◦
إرسال email للمعنيين
10.
المعنيون في الإيميل حالياً هم:
•
الأدمن
•
منشئ التكت
•
owner
•
assigned user
•
watchers
•
mentioned users
11.
الملاحظات الداخلية لا تظهر للمستخدم الخارجي.
12.
المستخدم الخارجي لا يرى إلا بيانات شركته فقط.
13.
الأدمن يقدر يدير:
•
المستخدمين
•
الأدوار
•
الصلاحيات
•
الأقسام
•
التصنيفات
•
قواعد التوزيع
•
الإعدادات
14.
الأدمن يستطيع فرض تغيير كلمة المرور مرة أخرى من صفحة تعديل المستخدم.
15.
إذا غيّر المستخدم كلمة مروره بنفسه، يتم إلغاء must_change_password تلقائياً.
16.
الجلسة تنتهي إذا:
•
انتهت مهلة الخمول
•
انتهت المهلة المطلقة
•
تغير الـ IP
•
تغير browser fingerprint
17.
صفحة التكتات الآن تعرض:
•
cards
•
جداول مجمعة حسب الحالة
•
ألوان حسب الحالة
•
bulk actions
كيف تجرّب الإشعارات والإيميلات
•
جرّب تسجيل الدخول بمستخدم عليه MFA مفعّل: يجب أن يصلك OTP على الإيميل.
•
أنشئ تكت جديد: يجب أن تظهر notification داخل النظام ويخرج email.
•
غيّر حالة التكت: يجب أن تظهر notification ويخرج email.
•
أضف comment أو ارفع attachment: يجب أن يظهر alert داخل الواجهة ويخرج email.
مهم بخصوص إعدادات البريد من الداشبورد
•
حالياً SMTP مأخوذ من .env، وهذا يتغلب على قيم قاعدة البيانات.
•
إذا أردت أن يتحكم الأدمن بإعدادات SMTP من صفحة Settings نفسها، احذف متغيرات MAIL_* من .env واتركها تُدار من الداشبورد.


 walkthrough :
Walkthrough كامل
1.
افتح صفحة Login.
2.
أدخل:
◦
admin
◦
ChangeMe123!
3.
اضغط تسجيل الدخول.
4.
بما أن MFA صار مفعّلاً، النظام لن يدخلك مباشرة.
5.
سيرسل كود OTP من 6 أرقام إلى:
◦
e.abudib@kfa-design.com
6.
افتح الإيميل، خذ الكود، وأدخله في صفحة التحقق.
7.
بعد إدخال الكود الصحيح ستدخل إلى Dashboard.
ماذا يحدث في الخلفية عند الـ login
•
النظام يتحقق من كلمة المرور
•
يتحقق من حالة الحساب
•
يرسل OTP عبر البريد
•
بعد إدخال OTP الصحيح ينشئ session آمنة
•
الجلسة مرتبطة بالـ IP وbrowser fingerprint
•
إذا تغيّر الـ IP أو المتصفح أو انتهى وقت الخمول، يتم تسجيل الخروج
ما الذي ستراه أول ما تدخل
•
لوحة التحكم
•
القوائم الجانبية
•
الإشعارات
•
صفحات الإدارة
•
صفحة الملف الشخصي
حالياً قاعدة البيانات فيها:
•
مستخدم واحد فقط: admin
•
لا توجد تذاكر بعد
•
لا توجد شركات بعد
•
توجد حالات وأولويات وأقسام وتصنيفات أساسية
لذلك أول اختبار عملي سيكون إنشاء أول تذكرة.
اختبار إنشاء أول تذكرة
1.
من القائمة الجانبية ادخل إلى Tickets.
2.
اضغط Create Ticket.
3.
عبّئ الحقول:
◦
Title: مثال SMTP test ticket
◦
Description: مثال Testing live email notifications
◦
Company: اتركها فارغة إذا أردتها داخلية
◦
Department: اختر أي قسم
◦
Priority: اختر High
◦
Status: اختر Open
4.
احفظ التذكرة.
ماذا سيحدث عند إنشاء التذكرة
•
النظام يولّد رقم مثل:
◦
TKT-2026-000001
•
يسجّل العملية في audit log
•
يضيف الحدث إلى activity timeline
•
ينشئ in-app notification
•
يرسل email notification
بما أن الموجود حالياً مستخدم واحد فقط، الإيميل سيصل إلى الأدمن نفسه.
اختبار تحديث التذكرة بعد إنشاء التذكرة افتحها وجرّب التالي واحداً واحداً:
1.
غيّر الحالة
◦
مثلاً من Open إلى In Progress
◦
النتيجة:
▪
timeline يتحدث
▪
إشعار داخل النظام
▪
إيميل تحديث
2.
أضف Public Comment
◦
النتيجة:
▪
يظهر في المحادثة العامة
▪
ينضاف activity
▪
يخرج email
3.
أضف Internal Note
◦
النتيجة:
▪
تظهر فقط للمستخدمين الداخليين
▪
تنضاف في timeline كحدث داخلي
▪
يخرج email داخلي للمعنيين الداخليين
4.
ارفع ملف attachment
◦
النتيجة:
▪
الملف ينحفظ
▪
activity جديد
▪
إشعار
▪
email
5.
غيّر الأولوية أو التعيين
◦
النتيجة:
▪
assignment/status history تتحدث
▪
إشعار
▪
email
كيف ترى الإشعارات داخل الواجهة
•
من أيقونة الإشعارات في الأعلى
•
الإشعارات تتحدّث عبر polling
•
كل حدث مهم على التذكرة يظهر هناك
•
يمكن تعليمها كمقروءة
كيف تختبر البريد بدون الدخول للنظام إذا أردت فقط التأكد أن SMTP يعمل:
.\.venv\Scripts\python.exe scripts\send_test_email.py --to your@email.com
أو:
$env:FLASK_APP="run.py"
.\.venv\Scripts\flask.exe send-test-email --to your@email.com
كيف تختبر Forgot Password
1.
من صفحة Login اضغط Forgot Password.
2.
أدخل البريد المرتبط بالمستخدم:
◦
e.abudib@kfa-design.com
3.
سيصل رابط reset إلى البريد.
4.
افتح الرابط وغيّر كلمة المرور.
5.
بعد التغيير، يمكنك تسجيل الدخول بالكلمة الجديدة.
كيف تختبر MFA من داخل النظام
1.
ادخل إلى Profile.
2.
ستجد قسم MFA.
3.
حالياً هو مفعّل.
4.
يمكنك تعطيله أو إعادة تفعيله من هناك.
5.
عند التفعيل/التعطيل سيُطلب كود تحقق عبر الإيميل.
كيف يشتغل منطق الصلاحيات الآن
•
الأدمن لديه وصول كامل
•
عند إنشاء مستخدمين لاحقاً، يمكن للأدمن تحديد:
◦
الأدوار
◦
الصلاحيات
◦
الأقسام
◦
الشركات
◦
الوصول للملفات والمجلدات
إذا أردت اختبار سيناريو أقوى الخطوة المنطقية التالية هي:
1.
إنشاء مستخدم داخلي ثانٍ ببريد حقيقي
2.
إنشاء شركة
3.
إنشاء مستخدم عميل خارجي
4.
إنشاء تذكرة من طرف والرد عليها من طرف آخر
5.
عندها ستشاهد الإيميلات تذهب لأكثر من شخص حسب الدور والعلاقة بالتذكرة
حالياً هذا غير متوفر تلقائياً لأن قاعدة البيانات فيها مستخدم واحد فقط.
إذا تريد، أقدر أعمل الخطوة التالية مباشرة الآن:
•
أنشئ لك agent داخلي حقيقي مع MFA
•
وأنشئ شركة تجريبية
•
وأنشئ customer user
•
وأجهز لك سيناريو كامل لاختبار التذاكر والإيميلات بين أكثر من مستخدم.