# ?️ Natours - منصة حجز الجولات السياحية
منصة احترافية شاملة لإدارة وحجز الجولات السياحية، مبنية بأحدث تقنيات Node.js و Express.js و MongoDB.
## ? نظرة عامة
**Natours** هو تطبيق ويب كامل لإدارة الجولات السياحية يتيح للمستخدمين استكشاف الجولات المتاحة، قراءة التقييمات، وحجز الجولات عبر نظام دفع آمن. كما يوفر لوحة تحكم شاملة للمديرين والمرشدين لإدارة الجولات والمستخدمين والحجوزات.
## ✨ المميزات الرئيسية
### ? نظام المصادقة والتفويض
- تسجيل دخول وتسجيل خروج آمن
- نظام JWT (JSON Web Tokens) للمصادقة
- إعادة تعيين كلمة المرور عبر البريد الإلكتروني
- تحديث بيانات المستخدم وصورة الملف الشخصي
- نظام أدوار متقدم (مستخدم، مرشد، مرشد رئيسي، مدير)
- حماية المسارات بناءً على الصلاحيات
### ?️ إدارة الجولات
- عرض جميع الجولات مع إمكانيات متقدمة للفلترة والبحث
- عرض تفاصيل الجولة الكاملة
- إنشاء وتحديث وحذف الجولات (للمديرين والمرشدين)
- رفع ومعالجة صور الجولات تلقائياً
- إحصائيات الجولات (متوسط التقييمات، عدد التقييمات، إلخ)
- البحث عن الجولات حسب الموقع الجغرافي (Geospatial Queries)
- حساب المسافات بين الجولات
- خطة شهرية للجولات
### ⭐ نظام التقييمات
- إضافة تقييمات ومراجعات للجولات
- تحديث وحذف التقييمات
- عرض جميع التقييمات مع معلومات المستخدمين
- حساب متوسط التقييمات تلقائياً
### ? نظام الحجز والدفع
- حجز الجولات عبر Stripe
- جلسات دفع آمنة
- Webhook للتحقق من المدفوعات
- إدارة الحجوزات (عرض، تحديث، حذف)
### ? نظام البريد الإلكتروني
- إرسال رسائل ترحيبية للمستخدمين الجدد
- إعادة تعيين كلمة المرور
- قوالب بريد إلكتروني احترافية
### ?️ الأمان والحماية
- Helmet.js لحماية رؤوس HTTP
- Rate Limiting لمنع هجمات DDoS
- حماية من XSS (Cross-Site Scripting)
- حماية من NoSQL Injection
- حماية من Parameter Pollution
- CORS مُكوّن بشكل صحيح
- ضغط البيانات (Compression)
### ? واجهة المستخدم
- قوالب Pug للعرض من جانب الخادم
- تصميم متجاوب وسريع
- تكامل مع Mapbox لعرض مواقع الجولات
- واجهة مستخدم عصرية وسهلة الاستخدام