1. الهدف من المشروع (The Goal)
بناء منصة سياحية تفاعلية تهدف إلى ربط الزوار بأفضل الوجهات والخدمات، مع توفير نظام إدارة محكم يضمن جودة المحتوى المعروض. تم التركيز بشكل أساسي على ثلاث ركائز: الأمان العالي، قابلية التوسع (Scalability)، وتجربة مستخدم (UX) استثنائية.
2. المنهجية والخطوات (The Process)
اعتمدت في تنفيذ المشروع على هيكلة برمجية منظمة تضمن استدامة الكود وسهولة تطويره مستقبلاً:
هيكلة النظام (Architecture): تطبيق نمط MVC للفصل التام بين قاعدة البيانات والمنطق البرمجي، مما منع تداخل المهام وسرّع من عملية التطوير.
نظام الصلاحيات (Orchestration): تصميم نظام RBAC دقيق لتقسيم الأدوار بين:
مدير النظام (Admin): للرقابة الكاملة وإدارة المحتوى.
أصحاب الأعمال (Owners): لإضافة وتعديل الوجهات مع نظام مراجعة تلقائي.
المستخدمين (Users): لتصفح وتخصيص تجاربهم الخاصة.
إثراء البيانات (Data Pipeline): دمج أدوات Apify لعمل "Automation" لجلب وتنقية بيانات المواقع الجغرافية الحقيقية وتغذية النظام بها بشكل آلي.
3. التحديات والأمان (Security & Challenges)
تم وضع الأمان كأولوية قصوى من خلال:
حماية قاعدة البيانات من هجمات NoSQL Injection.
تشفير كلمات المرور باستخدام خوارزمية Bcrypt.
اعتماد نظام JWT للتحقق من الهوية بشكل آمن وسريع (Stateless Authentication).
4. الأدوات والتقنيات (Technology Stack)
استخدمت أحدث التقنيات لضمان أداء فائق:
Frontend: React.js مع TypeScript لضمان خلو الكود من الأخطاء المنطقية، وTailwind CSS مع Shadcn UI لواجهات عصرية تدعم اللغتين العربية والإنجليزية (RTL/LTR).
Backend: Node.js وExpress.js لتوفير بيئة عمل سريعة.
Database: MongoDB Atlas لإدارة البيانات الضخمة بمرونة.
State Management: استخدام TanStack Query لإدارة البيانات المجلوبة من السيرفر بذكاء وتحسين سرعة التصفح عبر الـ Caching.
5. النتائج والمميزات (Key Results)
نظام إدارة دورة حياة العمل: تحكم كامل في حالة "المنشورات" من الطلب (Pending) إلى الموافقة (Approved).
تجربة مستخدم تفاعلية: نظام متقدم للفلاتر (المدينة، الفئة، السعر) مع ميزات "المفضلة" وسجل التصفح.
لوحة تحكم ديناميكية: واجهة موحدة تتغير أدواتها ومميزاتها تلقائياً بناءً على نوع حساب المستخدم المسجل.