تم تصميم الخدمات باستخدام Java EE EJB و SPRING BOOT وقواعد بيانات MYSQL وقائمة انتظار RABBITMQ. يتم عرض جميع الخدمات باعتبارها REST APIs تم صنع واجهة الويب باستخدام Java Servlets و JSP Pages و HTML و JavaScript.
يتم تنفيذ كل خدمة كمشروع خاص بها. هذا يستلزم أنه يحتوي على قاعدة كود خاصة به و DB الخاصة به. إذا كان لديك خدمة S1 وخدمة S2 ، فلا ينبغي أن تتمكن S1 من الحصول على أي معلومات من DB لـ S2 ، ولكن بدلاً من ذلك يجب أن تطلبها من خدمة S2 من خلال مكالمات REST.
المتطلبات الوظيفية
سيحتاج تطبيق التسوق إلى إضافة منتجات من قبل شركات البيع الخاصة بهم ، وسيحتاج إلى شركات شحن لتقديم المنتجات ، وبعض الأنشطة الإدارية تحتاج إلى دعمها. يجب أن يدعم التطبيق الميزات التالية:
ميزات المسؤول
إنشاء حسابات تمثيلية لبيع المنتجات.
بالنظر إلى مجموعة من الأسماء الفريدة للشركة
تم إنشاء كلمة مرور لكل شركة تلقائيًا
إنشاء شركات الشحن
قائمة حسابات العملاء
قائمة شركات الشحن
قائمة حسابات تمثيلية شركات البيع
بيع ميزات تمثيلية الشركة
تسجيل الدخول إلى النظام باستخدام بيانات الاعتماد التي تم إنشاؤها كما أرسلها المسؤول
عرض المنتجات التي يتم تقديمها حاليًا للبيع.
عرض المنتجات التي تم بيعها مسبقًا ، بما في ذلك معلومات حول العملاء الذين اشتروا كل منتج وشركة الشحن.
أضف منتجات جديدة.
ميزات شركة الشحن
طلبات الشحن العملية طالما أن العميل الذي اشترى هذا الطلب يندرج ضمن منطقته الجغرافية المدعومة.
يجب إخطار العملاء ، بمجرد معالجة طلب الشحن.
ميزات العملاء
سجل كعميل جديد من خلال النظام.
تسجيل الدخول إلى النظام باستخدام بيانات الاعتماد المستخدمة أثناء التسجيل.
عرض أوامر الشراء الحالية والسابقة.
تقديم أوامر شراء جديدة. يجب التعامل مع الطلبات بطريقة خاصة لتجنب حالات فشل الخادم.
يجب تأكيد كلا الطلبين معالجة وشحنهما للعملاء.
المتطلبات الفنية
استخدام 4 أنواع مختلفة من الفاصوليا للوفاء بالمتطلبات الوظيفية أعلاه:
عديمي الجنسية
دولة
المفرد
رسالة مدفوعة
يجب أن تكون الواجهة واجهة تعتمد على الويب باستخدام أي تقنية من اختيارك لمحاكاة تطبيق التسوق عبر الإنترنت يعمل مع مستخدمين مختلفين وفقًا للمتطلبات الوظيفية المذكورة أعلاه.
يجب أن تتعرض الخدمة كأبيات واجهات برمجة تطبيقات REST ، ويجب أن تعرض حبوبك باستخدام REST لتحقيق واجهة برمجة تطبيقات REST خدمة الويب حسب الاقتضاء.