مشروع أكاديمي — نظم المعلومات الإدارية
توثيق المشروع
لياقتي موقع لنشر معلومات اللياقة البدنية والتغذية الرياضية بشكل آمن، ويضم ثلاثة أنواع من المستخدمين: المشرف، والمدرب الرياضي المتخصص، والمشترك. تلخص هذه الصفحة التحليل والتصميم الذي بُني عليه النظام.
١. المشكلة والأهداف
كثير من الإصابات ناتجة عن أداء التمارين بشكل خاطئ وغياب الإرشاد، مع ضعف الوعي بالتغذية الرياضية المناسبة.
- مساعدة المستخدمين في الحصول على معلومات صحيحة عن التمارين.
- توفير معلومات عن التغذية الرياضية.
- نشر الثقافة الرياضية وتقديم محتوى تثقيفي للأعضاء.
- توفير أدوات لمتابعة الصحة واللياقة.
٢. تحليل المتطلبات
المتطلبات الوظيفية
- م.و1 — التسجيل (الاسم، الجوال، العمر، البريد، كلمة المرور) وتسجيل الدخول والتحقق من البريد.
- م.و2 — المشرف يدير المشتركين: قبول/رفض طلبات الاشتراك، الحظر.
- م.و3 — المشرف يدير المدربين المتخصصين: إضافة، حظر، حذف الصلاحية.
- م.و4 — المشرف يضيف مجموعات الاشتراك ووسائل الدفع/المشاركة.
- م.و5 — المدرب يكتب إرشادات التمارين والأجهزة مع المزايا والعيوب.
- م.و6 — المدرب يضيف منشورات، يراجع الحضور، يرسل تنبيهات للمشتركين ويجيب عن الأسئلة.
- م.و7 — المشترك يختار مجموعة ويدفع للخدمة (بانتظار تأكيد المشرف).
- م.و8 — المشترك يسجّل حضوره ويحدد التمارين المنفذة.
- م.و9 — المشترك يطّلع على الإرشادات، ينشر، يعلّق، ويتواصل بطرح الأسئلة.
- م.و10 — الجميع يحدّثون بياناتهم الشخصية، ويستخدمون صفحتي الصحة واختبر نفسك.
المتطلبات غير الوظيفية
- الثقة — المحتوى تثقيفي ولا يقدم ادعاءات طبية.
- الأداء — تحميل سريع وتخزين مؤقت للبيانات.
- الموثوقية — التحقق من المدخلات في الواجهة وقيود في قاعدة البيانات.
- الأمان — الأدوار في جدول مستقل وقواعد وصول على مستوى الصفوف لكل جدول.
الواجهات الثماني وحالة التنفيذ
٣. مخططات 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_groups | id, title, features, price, begin_date, end_date, specialist_id |
| subscriptions (register) | id, subscriber_id, group_id, status |
| payments | id, subscriber_id, subscription_id, payment_method_id, value, payment_date, status |
| payment_methods | id, name, description, is_active |
| attendance | id, subscriber_id, group_id, attend_date, attend_time, exercises, status |
| queries | id, subscriber_id, query_text, query_date, specialist_id, answer_text, answer_date |
| devices | id, device_name, guidance, instructions, advantages, disadvantages, specialist_id, group_id |
| alerts | id, specialist_id, subscriber_id, message, is_read |
| posts / comments / post_likes | id, author_id, title, content, … (المجتمع) |
التصميم مُطبَّع حتى الشكل الثالث (3NF). حذف المشاركة يحذف تعليقاتها وإعجاباتها. الأدوار تُخزَّن في جدول مستقل لمنع تصعيد الصلاحيات.
٥. النطاق وإخلاء المسؤولية
هذا نموذج أكاديمي يركز على فكرة المجتمع الأساسية، وليس خدمة جاهزة للإنتاج، ولا يقدم استشارات طبية أو غذائية أو تدريبية متخصصة. يُنصح باستشارة مختص قبل تغيير نظام التمرين أو الغذاء، خاصة لمن لديهم حالات صحية.