Najm Aldeen Alzorqah
نباتاتي — Nabatati
تطبيق يشخّص صحة نبتتك بالذكاء الاصطناعي (PWA)
01 — نظرة عامة
نباتاتي يساعد مالكي النباتات العربية على التعرف على النبتة من صورة، فهم صحتها، والحصول على إرشادات عناية عملية. المنتج تطبيق ويب تقدمي قابل للتثبيت، بواجهة RTL، ودعم للعمل بدون اتصال، مع مزامنة اختيارية عبر Supabase عند التهيئة.
02 — مساهمتي
صممتُ المنتج ونفذته من البداية للنهاية: مسارات الواجهة، التقاط الكاميرا، ضغط الصور على الجهاز، مسار التشخيص مع التحقق بالمخططات، التخزين (Supabase مع fallback إلى localStorage)، وهيكل PWA القابل للتثبيت. كذلك ربطتُ تحليلًا متعدد الوسائط ومحادثة «طبيب النبات» مرتبطة بكل فحص.
03 — البنية التقنية
الواجهة مبنية على Next.js 16 وReact 19 وTailwind CSS 4. تُضغط الإطارات على canvas قبل إرسالها إلى طبقة تنسيق (n8n) للتحليل؛ تُتحقق الاستجابات بـ Zod قبل تحديث الحالة. Supabase يحفظ سجل الفحوص عند التهيئة، وإلا تُخزَّن محليًا ليعمل العرض بدون خادم. Service worker يوفّر التثبيت وصفحة fallback عند انقطاع الشبكة.
04 — تحديات هندسية
- العربية RTL والخط المتصل: كان يجب احترام الاتجاه دون كسر الأسماء العلمية اللاتينية — استخدمت `dir="auto"` للنصوص المختلطة وبنية مكونات تبدأ من RTL.
- صور كاميرا كبيرة على الجوال: الإرسال بالدقة الكاملة كان بطيئًا ومكلفًا — أضفت ضغطًا على canvas بأهداف حجم قبل أي طلب شبكة.
- مخرجات نماذج غير موثوقة: JSON حر من مزودي AI يحتاج تقييدًا — كل مسار تشخيص يمر عبر مخططات Zod مع حالات خطأ واضحة للمستخدم.
05 — الاختبار والجودة
اختبار يدوي على أجهزة Android متوسطة وChromium على سطح المكتب للتثبيت والوضع بدون اتصال وصلاحيات الكاميرا. أخطاء التحقق تظهر كحالات قابلة للاستعادة. أداء: تأجيل المسارات الثقيلة وتقليل عمل الخيط الرئيسي أثناء التقاط الصورة.
06 — النتائج والدروس
نشرتُ عرضًا عامًا على nabatati.vercel.app مع كود MIT. التطبيق يعمل بالكامل من جهة العميل بدون مفاتيح خادم، ما يسهّل التحقق. التحسينات القادمة: اختبارات آلية لعقود Zod وتحليل حزمة أوضح لمسار الكاميرا.