للياقتي

مشروع أكاديمي — نظم المعلومات الإدارية

توثيق المشروع

لياقتي موقع لنشر معلومات اللياقة البدنية والتغذية الرياضية بشكل آمن، ويضم ثلاثة أنواع من المستخدمين: المشرف، والمدرب الرياضي المتخصص، والمشترك. تلخص هذه الصفحة التحليل والتصميم الذي بُني عليه النظام.

١. المشكلة والأهداف

كثير من الإصابات ناتجة عن أداء التمارين بشكل خاطئ وغياب الإرشاد، مع ضعف الوعي بالتغذية الرياضية المناسبة.

  • مساعدة المستخدمين في الحصول على معلومات صحيحة عن التمارين.
  • توفير معلومات عن التغذية الرياضية.
  • نشر الثقافة الرياضية وتقديم محتوى تثقيفي للأعضاء.
  • توفير أدوات لمتابعة الصحة واللياقة.

٢. تحليل المتطلبات

المتطلبات الوظيفية

  • م.و1 — التسجيل (الاسم، الجوال، العمر، البريد، كلمة المرور) وتسجيل الدخول والتحقق من البريد.
  • م.و2 — المشرف يدير المشتركين: قبول/رفض طلبات الاشتراك، الحظر.
  • م.و3 — المشرف يدير المدربين المتخصصين: إضافة، حظر، حذف الصلاحية.
  • م.و4 — المشرف يضيف مجموعات الاشتراك ووسائل الدفع/المشاركة.
  • م.و5 — المدرب يكتب إرشادات التمارين والأجهزة مع المزايا والعيوب.
  • م.و6 — المدرب يضيف منشورات، يراجع الحضور، يرسل تنبيهات للمشتركين ويجيب عن الأسئلة.
  • م.و7 — المشترك يختار مجموعة ويدفع للخدمة (بانتظار تأكيد المشرف).
  • م.و8 — المشترك يسجّل حضوره ويحدد التمارين المنفذة.
  • م.و9 — المشترك يطّلع على الإرشادات، ينشر، يعلّق، ويتواصل بطرح الأسئلة.
  • م.و10 — الجميع يحدّثون بياناتهم الشخصية، ويستخدمون صفحتي الصحة واختبر نفسك.

المتطلبات غير الوظيفية

  • الثقة — المحتوى تثقيفي ولا يقدم ادعاءات طبية.
  • الأداء — تحميل سريع وتخزين مؤقت للبيانات.
  • الموثوقية — التحقق من المدخلات في الواجهة وقيود في قاعدة البيانات.
  • الأمان — الأدوار في جدول مستقل وقواعد وصول على مستوى الصفوف لكل جدول.

الواجهات الثماني وحالة التنفيذ

1. التسجيلمنفّذ
2. تسجيل الدخولمنفّذ
3. التحققمنفّذ
4. الرئيسيةمنفّذ
5. الاشتراكمنفّذ
6. الدفعمنفّذ (دون دفع إلكتروني حقيقي)
7. الصحةمنفّذ
8. الاختبارمنفّذ
لوحة المشرفمنفّذ
لوحة المدرب والمشتركمنفّذ

٣. مخططات UML

مخطط حالات الاستخدام

[المشرف] ──▶ ( إدارة المشتركين ) ◀─«extend»─ ( قبول/رفض ) ( حظر/حذف )
          ──▶ ( إدارة المدربين )  ◀─«extend»─ ( إضافة ) ( حظر ) ( حذف )

[المشترك] ──▶ ( تسجيل ) ◀─«extend»─ ( اختيار مجموعة )
          ──▶ ( مراجعة الإرشادات ) ( تواصل ) ( تسجيل الحضور )
          ──▶ ( تحديد التمارين المنفذة ) ( منشور ) ( الدفع للخدمة )
          ──▶ ( تحديث البيانات الشخصية )

[المدرب]  ──▶ ( كتابة إرشاد للتمارين ) ( إضافة منشور ) ( مراجعة الحضور )
          ──▶ ( إرسال تنبيه للمشترك ) ( تحديث البيانات )
          ──▶ ( إضافة مزايا/عيوب التمارين )

كل حالات الاستخدام «include» ──▶ ( المصادقة )

مخطط النشاط — التسجيل والمشترك

  ● بداية
  ▼
[ إدخال بيانات التسجيل ] ─▶ [ إرسال رابط التحقق ] ─▶ [ صفحة التحقق ]
  ▼
[ تأكيد البريد ] ─▶ [ تسجيل الدخول ]
  ◇ بيانات صحيحة؟ ──لا──▶ [ رسالة خطأ ]
  │ نعم
  ▼
[ الرئيسية ] ─▶ [ اختيار مجموعة ] ─▶ [ الدفع ] ─▶ [ مراجعة المشرف: قبول/رفض ]
  ▼
[ تسجيل الحضور والتمارين ] ─▶ [ مراجعة المدرب / تنبيه ]
  ◉ نهاية

مخطط الفئات

User

user_id, user_name, password, email, phone, user_type

register(), login(), updateInfo()

Admin ⟵ User

admin_id, name

manageSubscribers(), manageSpecialists(), addPaymentMethod()

SportSpecialist ⟵ User

specialist_id, fullname, brief

writeGuidance(), reviewAttendance(), sendAlert(), answer()

Subscriber ⟵ User

subscriber_id, fullname, age

chooseGroup(), pay(), recordAttendance(), ask(), post()

SubscriptionGroup

subscriptionId, title, price, BeginDate, endDate

create(), activate()

Payment

payment_id, payment_date, value

submit(), confirm()

Attendance

attend_id, attend_date, attend_time, status

record(), review()

Query

query_id, query_text, query_date, answer_text, answer_date

ask(), answer()

Post

post_id, postTitle, postText

add(), delete()

Device

device_id, device_name, guidance, instructions

add(), update()

العلاقات: المشرف والمدرب والمشترك يرثون من المستخدم. المشترك يسجّل في مجموعات، ويدفع، ويسجّل حضوره، ويطرح أسئلة يجيب عنها المدرب، والمدرب يدير المنشورات والأجهزة والمجموعات.

٤. مخطط الكيانات والعلاقات (ERD)

user ─┬─ admin
       ├─ sport specialist ─1──N─ answer ─ query ─N──1─ ask ─ subscriber
       │        │ 1──N manage ─ post ─N──1 write ─ subscriber
       │        │ 1──N manage ─ subscriptionGroup
       │        │ 1──N manage ─ device ─N──N content ─ subscriptionGroup
       └─ subscriber ─1──N─ pay ─ payment ─N──1 have ─ subscriptionGroup
                    ─1──N─ record attendance ─ attendance ─N──1 have ─ subscriptionGroup
                    ─N──N─ register ─ subscriptionGroup
الجدولالأعمدة
profiles (user/subscriber/specialist)id, display_name, phone, age, brief, status
user_roles (user_type)user_id, role: admin | specialist | subscriber
subscription_groupsid, title, features, price, begin_date, end_date, specialist_id
subscriptions (register)id, subscriber_id, group_id, status
paymentsid, subscriber_id, subscription_id, payment_method_id, value, payment_date, status
payment_methodsid, name, description, is_active
attendanceid, subscriber_id, group_id, attend_date, attend_time, exercises, status
queriesid, subscriber_id, query_text, query_date, specialist_id, answer_text, answer_date
devicesid, device_name, guidance, instructions, advantages, disadvantages, specialist_id, group_id
alertsid, specialist_id, subscriber_id, message, is_read
posts / comments / post_likesid, author_id, title, content, … (المجتمع)

التصميم مُطبَّع حتى الشكل الثالث (3NF). حذف المشاركة يحذف تعليقاتها وإعجاباتها. الأدوار تُخزَّن في جدول مستقل لمنع تصعيد الصلاحيات.

٥. النطاق وإخلاء المسؤولية

هذا نموذج أكاديمي يركز على فكرة المجتمع الأساسية، وليس خدمة جاهزة للإنتاج، ولا يقدم استشارات طبية أو غذائية أو تدريبية متخصصة. يُنصح باستشارة مختص قبل تغيير نظام التمرين أو الغذاء، خاصة لمن لديهم حالات صحية.