دراسة حالة · المشروع الرئيسي
Lawz
منصة SaaS لإدارة المكاتب العقارية ومعارض السيارات
أول منتجات شركتي الناشئة Lawz: منصة SaaS متعددة المستأجرين صمّمتها وبنيتها وأطلقتها بمفردي بالكامل، ويستخدمها مكتبان فعليان.
زيارة lawz-sy.com(يفتح في تبويب جديد)
- الدور
- عمل فردي من البداية إلى النهاية
- الحالة
- يستخدمه مكتبان
- النوع
- SaaS متعدد المستأجرين
- التقنيات
- NestJS · Vue 3 · PostgreSQL · Supabase
01
المشكلة
تحتاج المكاتب العقارية ومعارض السيارات إلى مكان واحد تدير فيه عروضها وطلبات عملائها، من دون أن يطّلع أيٌّ منها على بيانات غيره، وبخطة اشتراك تناسب حجمه.
ما الذي كان على المنتج أن يتعامل معه
- مساحة عمل معزولة لكل مكتب أو معرض.
- عروض للعقارات والمركبات معاً، بخصائص ديناميكية.
- مطابقة العقارات مع طلبات العملاء، وتصفية بحسب المدن والمناطق السورية.
- خطط اشتراك تضبط التوسّع من دون أن تمنع أي مكتب من الوصول إلى بياناته.
02
دوري
بنيت Lawz بمفردي بالكامل، وهو أول منتجات شركتي الناشئة. وهذا يشمل كل الطبقات: نموذج البيانات وواجهة NestJS API، وواجهة Vue 3 الأمامية، ومجموعات الاختبارات، والعمل الأمني، والإطلاق في بيئة الإنتاج.
- الواجهة الخلفية و API
- الواجهة الأمامية
- قاعدة البيانات
- التخزين والصور
- الاختبارات
- الأمان
- الإطلاق
03
البنية
واجهة API واحدة لجميع المستأجرين
تمرّ طلبات كل المكاتب والمشرف العام عبر تطبيق Vue 3 نفسه وواجهة NestJS API واحدة.
طبقة تطبيق عديمة الحالة
الملفات المرفوعة تُحفظ في التخزين الكائني (Supabase Storage)، لا على خادم التطبيق.
طبقة بيانات مُدارة
PostgreSQL وتخزين الملفات يعملان كلاهما على Supabase.
04
أهم القرارات والتحديات
- 01
عزل المستأجرين، مع التحقق منه
كل مكتب عقاري أو معرض سيارات مستأجر معزول بذاته. ولأن اطّلاع مكتب على بيانات مكتب آخر يهدم ثقته بالمنتج، لم أكتفِ بافتراض أن العزل يعمل، بل تحققت منه باختبارات end-to-end.
- 02
حدود اشتراك لا تحتجز البيانات
ثلاث خطط: Basic (30 عرضاً) و Pro (100) و Max (أكثر من 300). وكان المطلوب تطبيق الحدود من دون أن يُمنع أحد من الوصول إلى حسابه: فانتهاء الاشتراك يوقف إضافة عروض جديدة ويُبقي تسجيل الدخول والاستعراض متاحَين، وتخفيض الخطة إلى ما دون الاستخدام الحالي يوقف الإضافات الجديدة ويحتفظ بكل العروض الموجودة.
- 03
معالجة صور تراعي الخصوصية والسرعة
صور العروض قد تحمل بيانات الموقع الجغرافي. لذلك تمرّ كل عملية رفع، وهي تشمل عدة صور دفعة واحدة، بمسار معالجة يحذف بيانات EXIF / GPS، ويغيّر أبعاد الصورة، ويحوّلها إلى WebP، وينشئ صوراً مصغّرة.
- 04
خصائص ديناميكية للعقارات والمركبات
تحمل العقارات والمركبات خصائص ديناميكية، إلى جانب مطابقة العقارات مع طلبات العملاء والتصفية بحسب المدن والمناطق السورية.
- 05
شبكات أمان افتراضية
حذف مؤقت مع سلة محذوفات، وتحديد لمعدل الطلبات على مسارات المصادقة، وتدقيقات أمنية مخصّصة.
- 06
الإطلاق منفرداً بثقة
في غياب فريق يراجع التغييرات، تقوم مجموعات الاختبارات مقام شبكة الأمان.
05
النتائج
- 2مكتبان فعليان يستخدمان Lawz
- 3خطط اشتراك
- 380+اختبار وحدة للواجهة الخلفية
- 330+اختبار للواجهة الأمامية
- 14اختبار e2e