تحليل المتطلبات وتحديد الكيانات
المسار: تطوير نظام إدارة الأعراس ودعوات QR الوحدة: التحليل والتصميم
مدخل إلى الدرس: تحليل المتطلبات وتحديد الكيانات
تحليل المتطلبات وتحديد الكيانات — نظام إدارة الأعراس والمناسبات ودعوات QR | Next.js وPrisma | أديب الصلوي
طريقة الدراسة: اقرأ التعريف، تتبّع المثال في الشرح، نفّذه بنفسك، ثم اختبر النتيجة والحالات الاستثنائية قبل الانتقال.
أهداف هذا الدرس
- تفكيك المتطلبات الوظيفية إلى متطلبات قابلة للقياس.
- استخراج الكيانات الأربعة الأساسية وعلاقاتها.
- صياغة قواعد عمل قابلة للتحقق في الكود.
المخطط: مخطط حالة استخدام (Use Case) للنظام بأكمله
flowchart TD
org(("منظّم"))
gst(("مدعو/ضيف"))
gate(("موظف البوابة"))
subgraph system ["نظام إدارة الأعراس والمناسبات"]
E["المناسبات والضيوف"]
I["الدعوات"]
A["الحضور"]
end
org -->|ينشئ/يعدّل مناسبة| E
org -->|يضيف مدعو/جدول| E
org -->|يولّد QR دعوة| I
org -->|يعرض إحصائيات دخول| A
gst -->|يفتح دعوة + رد RSVP| I
gate -->|يمسح QR + يسجل حضور| A
المتطلبات الوظيفية والفنية
| الفئة | المتطلب | كيف نتحقق منه |
|---|---|---|
| وظيفي | إنشاء مناسبة وتعديل بياناتها | زر في اللوحة + API POST/PATCH |
| وظيفي | إضافة مدعوين بأرقام طاولات | نموذج إضافة + جدول |
| وظيفي | دعوة لكل مدعو برابط وQR | عنوان /i/[token] + صورة QR |
| وظيفي | رد المدعو (قبول/اعتذار) | نموذج RSVP → upsert |
| وظيفي | تسجيل حضور عند البوابة | مسح QR → POST checkin |
| فني | منع حضور مكرر لمدعو واحد | قاعدة CheckIn فريدة |
| فني | منع تزوير الرابط | توقيع HMAC + فحص زمني |
الكيانات الأربعة الأساسية
المخطط: مخطط العلاقات ERD المجرّد
erDiagram
Event ||--o{ Guest : "يضم مدعو"
Guest ||--o{ Rsvp : "رد واحد"
Guest ||--o{ CheckIn : "سجلات حضور"
مبادئ التصميم
المفتاح: فصل «الحقيقة» في جدول مقابل — الرد جدول، الحضور جدول، فلا نفقد تاريخ التصرفات.
تمرين تطبيقي: اختر متطلبين وظيفيين من القائمة أعلاه واكتب لكل منهما سيناريو نجاح وسيناريو فشل.
أخطاء شائعة يجب تفاديها
- إضافة خانات رد/حضور داخل جدول المدعو فقط — يمنع تتبع التاريخ.
- إهمال قيد منع التكرار حتى يظهر في الكود وحده.
- نسيان الدور الثالث (الفرزة) فتبدو الواجهة مبنية لشخص واحد.
معجم مصطلحات الدرس
- متطلب وظيفي
- سلوك يجب أن يقوم به النظام (إنشاء مناسبة...).
- كيان Entity
- كائن رئيسي يُخزَّن في قاعدة البيانات (مناسبة/مدعو).
- حالة استخدام
- موقف من وجهة نظر مستخدم يحقق هدفاً عبر النظام.
مراجعة وتمرين تثبيت المهارة
اختبار سريع: اشرح بعبارتك معنى «تحليل المتطلبات وتحديد الكيانات»، ثم بيّن أين ستستخدمه داخل نظام تسجيل حضور دعوات مناسبة عبر رمز QR، وما الخطأ الذي يجب اختباره قبل الاعتماد على الحل.
تحدٍّ إضافي: غيّر شرطًا واحدًا في التطبيق، وتوقع النتيجة، ثم نفّذ الاختبار وفسّر الاختلاف.
الدرس التالي: تصميم قاعدة البيانات والعلاقات. من الأفضل إنهاء التجربة الحالية قبل متابعة الدرس التالي.