Nexus Social
منصة تدوين متعددة المستخدمين بـ PHP وMySQL، بُنيت خلال دورة على Udemy، وطُوِّرت بإضافة مسودات للمستخدمين، وصفحات للملفات الشخصية، وتصميم جديد للموقع العام.
التقنيات المستخدمة :

نظرة عامة على المشروع
Nexus Social منصة تدوين متعددة المستخدمين بـ PHP وMySQL دون أطر عمل، وهي أول مشروع لي بلغة PHP. بنيتُها في منتصف 2023 أثناء دراستي دورة PHP for Beginners - Become a PHP Master - CMS Project من تقديم Edwin Diaz وCoding Faculty Solutions على Udemy.
أخذتُ الأساس من مشروع CMS في الدورة: مخطط قاعدة البيانات، ولوحة الإدارة، والإعجابات، والتعليقات الخاضعة للإشراف، والبحث بالوسوم، وتدفق تسجيل الدخول واستعادة كلمة المرور. وعلى هذا الأساس وضعتُ تصميمي الخاص مكان قالب Bootstrap في الموقع العام، وأتحتُ فيه للمستخدمين العاديين كتابة المنشورات وحفظ المسودات وإدارة ملفاتهم الشخصية.
وفي هذا المشروع تعلّمتُ أساسيات الويب التي تخفيها أطر العمل عادة: الجلسات، واستعلامات SQL، ورفع الملفات، والصفحات المعروضة من الخادم.
الميزات الرئيسية
- المصادقة: تسجيل دخول وتسجيل حسابات مع تجزئة كلمات المرور بـ bcrypt
- استعادة كلمة المرور: إعادة تعيين عبر البريد مع التحقق من الرموز
- ملفات شخصية: ملفات مخصصة مع رفع الصور الشخصية
- إنشاء المحتوى: منشورات مع رفع صور ونظام مسودات للحفظ قبل النشر
- التفاعل المجتمعي: إعجابات، وتعليقات بموافقة المشرف، وبحث في وسوم المنشورات
- تصفح حسب التصنيفات: اكتشاف محتوى منظم
- نظام إدارة محتوى للمشرفين: لوحة تحكم لإدارة المستخدمين والمنشورات والتعليقات والتصنيفات
أبرز الجوانب التقنية
- تدفقات الحسابات: مبنية وفق نهج الدورة، وتشمل تجزئة كلمات المرور بـ bcrypt، واستعادة كلمة المرور برمز يُرسل بالبريد عبر PHPMailer، وجلسات PHP
- تحكم في الوصول حسب الأدوار: دور للمشرف وآخر للمستخدم، وكل صفحة ومعالج في منطقة الإدارة يعيد غير المشرفين إلى الموقع العام
- إعجابات عبر AJAX: تحديث عدد الإعجابات باستخدام jQuery دون إعادة تحميل الصفحة
- التنسيق: CSS مكتوب يدوياً للتصميم الداكن في الموقع العام، مع Tailwind CSS يُبنى عبر سكربت npm
- لمسات الواجهة: هياكل تحميل تظهر حتى يكتمل تحميل الصفحة، وحركات ScrollReveal، ونوافذ SweetAlert2 لتأكيد الحذف
- تنظيم الكود: الصفحات العامة (/dist)، ومعالجات Backend (/includes)، ونظام الإدارة في مجلد خاص به
مساهماتي
- وضعتُ في الموقع العام تصميماً داكناً خاصاً بي وهوية Nexus وتخطيطات متجاوبة مكان قالب Bootstrap المستخدم في الدورة
- كيّفتُ قالب Argon Dashboard 2 Tailwind من Creative Tim لصفحات الدخول والتسجيل واستعادة كلمة المرور، واعتمدتُ على درس من CodingLab في الشريط الجانبي للوحة الإدارة
- أتحتُ للمستخدمين العاديين كتابة المنشورات من الموقع العام، مع مسودات يعدّلونها وينشرونها من ملفاتهم الشخصية
- بنيتُ صفحات الملفات الشخصية العامة، وصفحة لتعديل الملف الشخصي مع رفع الصورة الشخصية، وخاصية لتغيير كلمة المرور تتحقق أولاً من كلمة المرور الحالية
- جعلتُ الحذف في لوحة الإدارة يشمل البيانات المرتبطة: حذف المستخدم يحذف معه منشوراته وتعليقاته وإعجاباته، وحذف المنشور يحذف تعليقاته وإعجاباته
التحديات والحلول
التحدي: في نظام CMS الخاص بالدورة تُكتب المنشورات من لوحة الإدارة، وأردتُ أن يكتب المستخدمون العاديون منشوراتهم ويحفظوها مسودات وينشروها من الموقع العام.
الحل: صفحة عامة لإنشاء المنشورات مع فحص الصور المرفوعة (حد أقصى 1 MB، وJPG وPNG فقط)، وقائمة مسودات في كل ملف شخصي، ومعالجات تعديل ونشر لا تقبل إلا كاتب المنشور.
النتيجة: مدونة متعددة المستخدمين تعمل فعلياً، وأول تطبيق PHP أبنيه من قاعدة البيانات حتى الواجهة. لو أعدتُ بناءه لأضفتُ الاستعلامات المُعدّة مسبقاً (prepared statements)، ورموز CSRF، وروابط استعادة تنتهي صلاحيتها.
التقنيات المستخدمة
Frontend: HTML5، CSS3، JavaScript (ES6+)، jQuery، Tailwind CSS 3.3
Backend: PHP 8.2، PHPMailer
قاعدة البيانات: MySQL (MariaDB 10.4)
البنية التحتية: Apache (XAMPP)
الأدوات: Composer، npm، ScrollReveal.js، SweetAlert2، Font Awesome
تحتاج شيئاً مشابهاً؟أخبرني عن مشروعك