أدوار النظام:
1. العميل (Customer):
تسجيل حساب جديد مع تأكيد عبر البريد الإلكتروني
تسجيل الدخول باستخدام JWT
عرض المنتجات والتفاصيل
إضافة / تعديل / حذف المنتجات من سلة المشتريات (CRUDs على الـ Cart)
إتمام عملية الشراء عبر Stripe
عرض الطلبات السابقة
2. المدير (Admin):
تسجيل الدخول مع صلاحيات مخصصة
CRUD كامل على المنتجات
CRUD على المستخدمين
عرض كل الطلبات
عرض طلبات كل مستخدم بشكل منفصل
التقنيات والمكتبات المستخدمة:
Node.js + Express.js: لإنشاء الخادم ومعالجة الطلبات
MongoDB + Mongoose: لتخزين وإدارة البيانات
JWT: لإنشاء التوكنات وتأمين الجلسات
Bcrypt: لتشفير كلمات المرور
Joi: للتحقق من صحة البيانات (Validation)
Stripe API: لإتمام عمليات الدفع