تطبيق Backend متكامل لمنصة تجارة إلكترونية باستخدام NestJS

تفاصيل العمل

قمت بتطوير نظام Backend كامل لمنصة تجارة إلكترونية باستخدام إطار العمل NestJS مع الاعتماد على بنية منظمة وقابلة للتوسع تعتمد على مبادئ البرمجة كائنية التوجه (OOP). يهدف هذا النظام إلى إدارة جميع العمليات الأساسية الخاصة بمتاجر الإنترنت مثل إدارة المستخدمين، المنتجات، الطلبات، السلة، وأنظمة الدفع.

نوع المشروع

المشروع عبارة عن واجهة برمجية (RESTful API) لتطبيق تجارة إلكترونية يمكن ربطها مع أي تطبيق Frontend مثل مواقع الويب أو تطبيقات الهاتف. تم تصميمه ليكون قابلاً للتوسع وقادراً على التعامل مع العمليات الشائعة في المتاجر الإلكترونية مثل تسجيل المستخدمين، إدارة المنتجات، إنشاء الطلبات، والدفع الإلكتروني.

الميزات الرئيسية للنظام

يوفر النظام مجموعة من الوحدات المنظمة التي تدير مختلف أجزاء المنصة، ومنها:

نظام إدارة المستخدمين

يسمح بإنشاء حسابات المستخدمين وإدارة بياناتهم وصلاحياتهم داخل النظام.

نظام المصادقة والتفويض

يعتمد على JSON Web Tokens لتأمين النظام. يتم استخدام Access Tokens و Refresh Tokens لضمان تسجيل الدخول الآمن وإدارة جلسات المستخدمين بطريقة فعالة.

نظام إدارة المنتجات

يمكن من خلاله إنشاء المنتجات وتعديلها وحذفها وربطها بالتصنيفات والعلامات التجارية.

نظام التصنيفات والعلامات التجارية

إدارة تصنيفات المنتجات (Categories) والعلامات التجارية (Brands) وربطها بالمنتجات داخل قاعدة البيانات.

إدارة سلة المشتريات

يسمح للمستخدم بإضافة المنتجات إلى السلة وتعديل الكميات وإدارة محتويات السلة قبل إتمام عملية الشراء.

نظام الكوبونات والخصومات

إمكانية إنشاء كوبونات خصم وتطبيقها أثناء عملية الشراء.

نظام الطلبات

إدارة الطلبات الخاصة بالمستخدمين ابتداءً من إنشاء الطلب وحتى إتمام عملية الدفع.

الدفع الإلكتروني

تم ربط النظام مع Stripe لمعالجة المدفوعات الإلكترونية بشكل آمن.

رفع وتخزين الصور

تم استخدام خدمة AWS S3 لتخزين صور المنتجات والتصنيفات والعلامات التجارية بطريقة آمنة وقابلة للتوسع.

إرسال البريد الإلكتروني

تم ربط النظام مع خدمة Gmail لإرسال الرسائل البريدية مثل رسائل التحقق أو الإشعارات للمستخدمين.

التحقق من صحة البيانات

تم استخدام مكتبة class-validator للتحقق من صحة البيانات المدخلة قبل معالجتها لضمان سلامة البيانات داخل النظام.

قاعدة البيانات

يعتمد المشروع على MongoDB كقاعدة بيانات أساسية لإدارة وتخزين بيانات المستخدمين والمنتجات والطلبات وباقي مكونات النظام، مع استخدام Mongoose للتعامل مع النماذج والبيانات بشكل منظم.

طريقة التنفيذ

تم بناء المشروع باستخدام إطار NestJS لما يوفره من بنية منظمة تعتمد على Modules و Controllers و Services مما يسهل تقسيم المشروع إلى أجزاء مستقلة يسهل تطويرها وصيانتها.

تم استخدام نظام Modules لفصل وظائف النظام إلى وحدات مستقلة مثل:

Auth

User

Product

Category

Brand

Cart

Coupon

Order

Real-time

كما تم استخدام ملفات البيئة (Environment Variables) لإدارة الإعدادات الحساسة مثل مفاتيح الخدمات الخارجية وقيم الاتصال بقاعدة البيانات.

يركز تصميم المشروع على قابلية التوسع وسهولة إضافة ميزات جديدة مستقبلاً مثل إضافة طرق دفع إضافية أو ربط النظام بخدمات خارجية أخرى.

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
عدد المشاهدات
3
تاريخ الإضافة
تاريخ الإنجاز
المهارات