تفاصيل العمل

للمزيد من المعلومات يمكنك التوجه لصقحة هذا العمل في البورتفوليو الخاص بي https://ramfarid.vercel.a...

موقع E-Commerce

الموقع الأكثر طلبًا. لن أتحدث عن سهولته، يكفي أن أخبرك أنه استغرق مني 30 ساعة فقط لتنفيذه.

- الميزات:

- المصادقة:

- وضع الزائر:

يمكنك تصفح الموقع في وضع الزائر دون الحاجة إلى التسجيل. يتيح لك وضع الزائر تصفح المنتجات.

- وضع المستخدم:

- إنشاء حساب

- تسجيل الدخول إلى الحساب

- نسيت كلمة المرور

- بعد إنشاء حساب، يمكنك التسوق والاستمتاع بميزات التطبيق:

- المفضلات:

يمكنك إضافة أي منتجات إلى صفحة المفضلات لحفظها في حسابك للعودة إليها لاحقًا.

- حفظ المعلومات:

يمكن للمستخدم حفظ معلوماته لسهولة الدفع. يتيح التطبيق للمستخدم حفظ:

- العناوين (عنوان التوصيل):

هناك عدد محدود من العناوين يمكن للمستخدم إضافتها، وبعد إضافة عناوين مختلفة يمكن للمستخدم تفعيل عنوان معين في طلبه.

- طريقة الدفع & بطاقات الائتمان:

تعتبر بطاقات الائتمان معلومات حساسة، لذا يجب التعامل معها بحذر. يمكنك حفظ بطاقات ماستر أو فيزا.

الطريقة التي اعتمدتها لتأمين معلومات بطاقات الائتمان هي إنشاء حقل secure_number في المخطط (schema) يحتوي فقط على الأربعة أرقام الأخيرة من بطاقة الائتمان. كما أنني جعلت حقل رقم البطاقة select: false لضمان عدم استرجاعه في الاستعلام إذا لم أطلبه.

لا توجد بطاقة مكررة في قاعدة البيانات بأكملها. وكما هو الحال مع العناوين، يمكن للمستخدم اختيار البطاقة النشطة لاستخدامها.

بطاقات الائتمان هي وسيلة الدفع الوحيدة المتاحة لجعل الموقع أكثر واقعية حتى لو كان مجرد عرض تجريبي. أعني أنه إذا كنت قد جعلت الدفع عبر النقد (كاش)، فلن تكون هناك طلبات حقيقية وهذا ليس واقعيًا.

- عربة التسوق:

عربة التسوق هي المكون الأساسي في تطبيقات التجارة الإلكترونية. عندما تنتقل إلى الخروج بعد اختيار المنتجات والكميات، ثم تحدد العنوان والبطاقة، تضغط على "اطلب الآن". يقوم الخادم بحفظ الطلب في قاعدة البيانات. إنه الإجراء التقليدي ولكنه حقًا يسحب المال من بطاقة الائتمان.

لقد استخدمت Strapi لإدارة المعاملات المالية ويتم تنفيذ الطلب من خلاله.

- مراجعات المنتجات:

يمكن لكل مستخدم مسجل أن يكتب مراجعة لأي منتج.

ملحوظة: بعض صور المنتجات على الموقع لا تعمل كما هو متوقع، وهذا فاجأني ولا يوجد ما يمكنني فعله!

- المنتجات المستخدمة في الموقع:

كنت بحاجة إلى بيانات وهمية لاتمام المشروع. لذا، قمت بتجميع حوالي 160 منتجًا من مصادر مختلفة بما في ذلك: Fake Store API، Dummyjson API، وMock API. بعد جمع البيانات، وضعتها في قاعدة بيانات Mongo الخاصة بي.

- لماذا لم أستخدم أي API جاهز؟

- الكمية: عدد المنتجات في أي API رأيتها كان حوالي 20 منتجًا، والحد الأقصى كان 30 منتجًا. كنت أريد أكثر من 100 منتج.

- محدودية البيانات: كانت الـAPIs التي رأيتها تحتوي على حقول محدودة. إذا كان لدى أحد الـAPIs عدد مشاهدات المنتج، لم يكن لديه معرض صور، وإذا كان لديه معرض صور لم يكن لديه فئة المنتج. في هذا السياق، كان عليّ إيجاد الحل الأمثل.

- عدم وجود آليات CRUD: الـAPIs الجاهزة التي رأيتها لم يكن لديها آلية لتنفيذ عمليات CRUD (إنشاء، قراءة، تحديث، حذف). كيف يمكنني استخدام API محددة مع الحصول فقط على البيانات؟ كنت أريد إدارة البيانات ويجب أن يكون موقع التجارة الإلكترونية عرضًا تجريبيًا حقيقيًا.

- ما مميزات ما فعلت من حيث جمع البيانات و ادارتها بنفسي؟

جمع المنتجات في الـAPI الخاص بي أتاح لي التحكم الكامل في المنتجات وإضافة العديد من الميزات:

- يمكن للمستخدم إضافة المنتجات إلى المفضلة للعودة إليها لاحقًا.

- يمكن للمستخدم تصفية المنتجات حسب الفئة الفرعية والفئة الرئيسية.

- يمكن للمستخدم تصفية المنتجات للحصول على أفضل سعر يريده.

- يمكن للمستخدم إضافة مراجعة لكل منتج.

- تمكنت من عرض عدد مشاهدات المنتج والمبيعات الخاصة به.

> الآن، بعض الصور لا تعمل ويبدو أن مصدر الصور في إحدى الـAPIs لم يعد يعمل أو تم إيقافه، وللأسف، كان هذا الـAPI يحتوي على أكبر عدد من المنتجات المجمعة.

> هام جدا: كان من المفترض أن أنشئ لوحة تحكم للتحكم في الطلبات وعرض الإحصائيات وبعض الأمور الأخرى الذي توفرها لوحة التحكم، لكن للأسف ليس لدي الوقت لذلك وأنا مشغول بالدراسة الأكاديمية.

بطاقة العمل

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