Shoply هو نظام Back-End متكامل لمتجر إلكتروني يشمل جميع العمليات الأساسية من إدارة المنتجات والتصنيفات والماركات إلى سلة المشتريات والطلبات والدفع الإلكتروني مع نظام مصادقة آمن ولوحة تحكم للمشرفين. المشروع مبني بمعمارية MVC نظيفة وقابلة للتوسع وموثق بالكامل عبر Swagger API Docs.
الميزات الرئيسية:
نظام مصادقة وأمان متقدم
تسجيل حساب عبر تأكيد OTP بالبريد الإلكتروني
تسجيل دخول ب JWT مع Access Token و Refresh Token مع Token Rotation
إعادة تعيين كلمة المرور عبر OTP
تشفير كلمات المرور ب bcrypt
حماية من NoSQL Injection و XSS Middleware مكتوب يدوياً متوافق مع Express 5
حماية HTTP Headers ب Helmet و Rate Limiting و HPP
إدارة المنتجات
CRUD كامل للمنتجات مع دعم التصنيفات Categories والتصنيفات الفرعية SubCategories والماركات Brands
رفع الصور ومعالجتها وتحويلها إلى WebP وضغط باستخدام Sharp
تخزين الصور سحابياً على ImageKit CDN
دعم صورة غلاف ومعرض صور متعدد لكل منتج
توليد Slug تلقائي لعناوين المنتجات
سلة المشتريات والطلبات
إضافة حذف تعديل المنتجات في السلة مع حساب الإجمالي تلقائياً
نظام كوبونات خصم
طلبات الدفع عند الاستلام Cash on Delivery
دفع إلكتروني عبر Stripe Checkout مع Webhook لتأكيد الدفع
تتبع حالة الطلب مدفوع تم التوصيل مع التحقق من المخزون
تقييمات وقوائم المستخدم
نظام تقييمات Reviews مع حساب المتوسط تلقائياً
قائمة أمنيات Wishlist لكل مستخدم
إدارة عناوين الشحن المتعددة
بحث وفلترة متقدمة
بحث بالكلمات المفتاحية في العنوان والوصف
فلترة بالسعر والتصنيف والتقييم مع دعم عوامل المقارنة gte lte gt lt
ترتيب حسب أي حقل مع Pagination كامل
تحديد الحقول المطلوبة Field Selection
صلاحيات ولوحة تحكم
نظام أدوار User Vendor Manager Admin
صلاحيات مختلفة لكل مسار حسب الدور
Factory Pattern لتنفيذ CRUD موحد وقابل لإعادة الاستخدام
توثيق API
توثيق شامل عبر Swagger UI متاح على /api-docs
تسهيل تكامل Front-End Developers مع API
التقنيات المستخدمة
Nodejs و Express 5 لبناء السيرفر وال Routing
MongoDB و Mongoose قاعدة البيانات و ODM
JWT المصادقة Access و Refresh Tokens
bcryptjs تشفير كلمات المرور
Stripe الدفع الإلكتروني و Webhooks
ImageKit تخزين الصور سحابياً CDN
Sharp معالجة وضغط الصور WebP
Multer رفع الملفات
Nodemailer إرسال البريد الإلكتروني OTP
Joi التحقق من صحة البيانات Validation
Helmet و HPP و Rate Limit حماية وتأمين API
Swagger UI توثيق API
Compression ضغط الاستجابات
طريقة التنفيذ
معمارية MVC مع فصل واضح بين Models و Controllers و Routes و Middlewares و Validations و Utils
Handlers Factory Pattern لتوحيد عمليات CRUD وتقليل تكرار الكود
ApiFeatures Class قابلة لإعادة الاستخدام للبحث والفلترة والترتيب وال Pagination
Custom Sanitization Middleware مكتوب يدوياً
Cascade Delete Hooks في Models لضمان سلامة البيانات عند الحذف
ES Modules بالكامل import و export بدلاً من CommonJS
Error Handling مركزي عبر Global Error Middleware مع فصل أخطاء Development و Production