ShopSphere Backend — REST API for E-commerce
مشروع عملي متكامل لتطبيق متجر إلكتروني، يغطّي رحلة المستخدم كاملة من تسجيل الحساب، التصفح، السلة، الطلبات، الدفع، وحتى مراجعات المنتجات، مع لوحة تحكم للأدمن وصلاحيات دقيقة.
الهدف
بناء Backend عملي باستخدام Node.js + TypeScript + PostgreSQL مع توثيق API كامل، يوفّر أساسًا قويًا لأي تطبيق Frontend أو Mobile App للتكامل بسهولة.
المزايا الرئيسية (Features)
Authentication & Users
تسجيل مستخدم جديد + إرسال OTP على البريد لتأكيد الحساب
تسجيل دخول باستخدام JWT
استعادة كلمة المرور عبر OTP
تحديث بيانات المستخدم بصلاحيات (Self / Admin)
تفعيل / تعطيل الحساب (is_active) ومنع الحسابات المعطلة من استخدام API
Products
CRUD للمنتجات (Admin فقط)
رفع صورة المنتج باستخدام Multer مع قيود أمان (نوع/حجم/اسم آمن)
تحديث منفصل للـ stock و price + Bulk update
Low stock endpoint + Export CSV
تحويل image_url تلقائيًا إلى public URL
Cart
إضافة / تعديل / حذف عناصر السلة
تحقق من وجود المنتج وصحة الكمية ومراعاة المخزون
منع تكرار نفس المنتج داخل السلة
Orders
إنشاء Order من السلة ضمن Transaction (حساب الإجمالي + خصم المخزون + إنشاء order_items + تفريغ السلة)
حماية عرض الطلب (المالك فقط أو Admin)
تعديل حالة الطلب (Admin-only)
Payments
Payment Service مع Gateway abstraction (جاهز لتوصيل مزود دفع حقيقي)
Transaction + locking لمنع double payment
تحديث حالة الدفع والطلب تلقائيًا عند نجاح الدفع
Reviews
إنشاء / تعديل / حذف Review مع تحقق الملكية
حساب متوسط التقييم وإحصائيات للمنتج
Moderation من لوحة Admin
Admin Panel APIs
إدارة Users (عرض / حذف / تفعيل / تعطيل)
إدارة Products & Categories
Moderation للـ Reviews
Dashboard endpoints (overview / best-sellers / stale-products)
Audit logging (JSON lines) لتتبع عمليات الأدمن
Tech Stack
Backend: Node.js + TypeScript + Express.js
Database: PostgreSQL
File Upload: Multer
Authentication & Security: JWT, OTP, Data Validation
Transactions & Concurrency: PostgreSQL Transactions + Locking
API Documentation: Swagger