نظام متكامل لإدارة ونشر المقالات (Blog-Post System)
تم بناء نظام ويب متكامل لإدارة المقالات (CMS مصغر)، يتيح للمستخدمين المسجلين إنشاء محتوى شخصي وإدارته بفعالية. تم تصميم النظام بتطبيق قواعد صارمة للتحكم في الوصول والصلاحيات لضمان أمان وخصوصية محتوى كل مؤلف.
المصادقة والتحكم في الحسابات
نظام مصادقة شامل يركز على مرونة التحكم في الملف الشخصي:
مصادقة كاملة: تطبيق شامل لوظائف تسجيل الدخول، إنشاء حساب جديد، تسجيل الخروج، واستعادة كلمة المرور.
تخصيص الملف الشخصي: يمتلك المستخدم صلاحية كاملة لتخصيص حسابه، بما في ذلك رفع صورته الشخصية لتظهر مع مقالاته.
إدارة المحتوى وصلاحيات المستخدم (CRUD)
إنشاء ونشر المقالات: إمكانية كتابة ونشر مقالات جديدة، حيث تُرفق المقالة تلقائياً ببيانات هوية المؤلف (اسم صاحب المقال وصورة حسابه).
التحكم المطلق (CRUD): يتمتع المستخدم بالصلاحية الكاملة على مقالاته الخاصة فقط (التعديل والحذف).
الأمان وفصل الصلاحيات (Authorization)
تم تطبيق قاعدة فصل الصلاحيات بصرامة:
حماية الملكية الفردية: لا يستطيع أي مستخدم آخر تعديل أو حذف المقالات التي لا يمتلكها.
البيانات الوصفية: يتم عرض بيانات: صاحب المقال، وتاريخ آخر نشاط (نشر أو تحديث) لضمان الشفافية.
طريقة التنفيذ والبنية التقنية (Implementation & Architecture)
لضمان الأمان والتحكم في صلاحيات الوصول للمحتوى، تم اعتماد البنية والتقنيات التالية:
الإطار التقني (Framework):
تم بناء المشروع بالكامل باستخدام إطار عمل Laravel.
تم تطبيق نموذج MVC (Model-View-Controller) لضمان فصل المهام وسهولة الصيانة.
الأمان وفصل البيانات:
المصادقة: لم يتم استخدام أدوات المصادقة المدمجة في Laravel مثل Breeze تم انشاء المصادقة يدويا.
حماية الملكية: تم ربط كل مقال بـ معرّف المستخدم (user_id) في قاعدة البيانات، وتم استخدام Laravel Policies أو Midddleware للتحقق من أن المستخدم الحالي هو المالك الفعلي للمقال قبل السماح بأي عملية تعديل أو حذف.
هيكلة البيانات (Database Structure):
تم إنشاء جداول منفصلة للـ المستخدمين (Users) والمقالات (Posts).
تم استخدام العلاقات (Relationships) بين النماذج (Models) لربط المقالات بالمستخدم المالك لها ولجلب بيانات المؤلف (الاسم والصورة) مباشرة عبر الـ Relation Ship.