فكرة المشروع بدأت من ملاحظة إن المزادات الإلكترونية مش منتشرة بالشكل الكافي في الوطن العربي وبلادنا. من هنا جه التفكير: ليه منكونش أول منصة مزادات تمثلنا وتقدم تجربة كاملة للمستخدم؟ اشتغلت على الـ Frontend باستخدام Angular 18 بأحدث الـ Features، مع:
Lazy Loading علشان الأداء وتحسين التجربة
RxJS Operators لإدارة البيانات بشكل Reactive
Angular Zone.js والتعامل مع Reactive Forms
Bootstrap للتصميم
Stripe Integration للدفع والديبوزت
2FA (OTP) لتأمين الحسابات
Auth Guard & Role Guard في Angular لضبط الوصول للصفحات والصلاحيات بشكل آمن ومرتب.
التجربة دي علمتني إزاي أوازن بين الـ User Experience والـ Security.
SignalR Integration علشان المزاد يبقى Real-time والمستخدم يقدر يتابع التحديثات مباشرة من غير ما يعمل Refresh
الاعتماد بشكل كبير على Standalone Components
ميزة العد التنازلي (Time Remaining):
علشان المزاد يكون Real-time بالكامل، استخدمت RxJS لتحديث التايمر بشكل لحظي كل ثانية.
النتيجة:
كل المشاركين شايفين نفس الوقت بدقة
مفيش خسارة بسبب تأخير أو Refresh
التجربة بقت قريبة جدًا من المزادات الحقيقية
عامل Advanced Search بيشتغل كدا:
تقدر تعمل Sort بالاسم (تصاعدي أو تنازلي).
وكمان Sort بالسعر، والـ bidder بيحدد الـ Minimum والـ Maximum Price.
فيه كمان فلترة بالمزاد اللي هيخلص قريب ( Auction Ending soon) يعني اللي فاضل عليه مثلاً 4 ساعات.
Backend معمول بـ .NET Core (C#) باستخدام onion Architecture : uilt with modern technologies including:
- SignalR
- Stripe
- EF Core
- JWT Authentication (with Refresh Tokens)
- Specification Pattern for efficient querying and business logic separation
- AutoMapper for smooth data transformation between models and DTOs