SalamPet: موقع لرعاية الحيوانات الأليفة ولوحة للمنشآت وأخرى للإدارة
SalamPet منصة لرعاية الحيوانات الأليفة في الإمارات، يُراد لها أن تجمع في مكان واحد حجز الخدمات البيطرية والعناية والتجميل والإيواء والتدريب وتاكسي الحيوانات بأسعار الأعضاء، ويطمح مؤسسوها إلى أن تتحول إلى تطبيق شامل للحيوانات الأليفة. وقد بنينا إصدارها ٠٫١: الموقع الذي سيستخدمه أصحاب الحيوانات، ولوحة للمنشآت ولوحة إدارة لفريق SalamPet، وتعمل اللوحتان على واجهة API واحدة.

التحدي
يريد مؤسسو SalamPet مكاناً واحداً في الإمارات يجد فيه أصحاب الحيوانات الأليفة خدمات الرعاية لحيواناتهم ويحجزونها بأسعار الأعضاء، ويكسبون نقاطاً مع كل زيارة، ويُبرزون بطاقة العضوية عند الدفع في المتجر. وكان طلبهم في الجانب التقني أن ننطلق بعقلية التطبيق الشامل ونبني البنية التحتية على هذا الأساس منذ اليوم الأول، لذلك لم يكن ممكناً أن يقتصر الإصدار الأول على موقع. كان المطلوب ثلاثة أجزاء تحكمها قواعد واحدة: موقع لأصحاب الحيوانات، ولوحة تسجّل فيها المنشآت المرخّصة خدماتها وتدير حجوزاتها، ولوحة يعتمد فيها فريق SalamPet المنشآت والعروض، ويراجع ما يكتبه المستخدمون، ويحسب مستحقات كل منشأة. ثم إن منصة للحيوانات الأليفة لا بد أن تراقب ما يُكتب فيها: فحيوان معروض للبيع، أو دواء مطروح بلا وصفة طبية، أو رقم هاتف في تقييم، كل ذلك يجب أن يُرصد قبل أن يراه أحد.
ما فعلناه
انطلقنا من حزمة أبحاث ومخطط شامل في تسعة مستندات، منها البنية التقنية ومواصفات اللوحتين، وعلى أساسها بنينا الإصدار ٠٫١ في قاعدة شيفرة واحدة بلغة TypeScript: واجهة API مبنية بـ NestJS فوق PostgreSQL، ولوحتان بـ Next.js تتشاركان تعريف الأدوار والحالات وقواعد التحقق، وموقع للعملاء يستخدم نظام التصميم نفسه الذي تستخدمه اللوحتان. كل خدمة تسجّلها منشأة تأخذ أحد ثمانية أنماط حجز، من موعد محدد أو إقامة ليلية إلى زيارة العميل في مكانه أو طلب عرض سعر أو تذكرة، وعلى هذا الأساس تهدف البنية إلى إضافة أنواع الرعاية الجديدة عبر الإعدادات لا عبر شيفرة جديدة؛ ولكل خدمة ثلاثة أسعار: سعر المنشأة العادي، وسعر SalamPet، وسعر أقل للأعضاء. تسجّل المنشأة، وتُدخل بياناتها وساعات عملها وخدماتها، وترفع رخصتها التجارية وتسجيلها في البلدية إلى مساحة تخزين خاصة، ثم ترسل ملفها للمراجعة؛ فيعتمدها الفريق أو يرفضها مع ذكر السبب أو يعلّقها، ويراجع كل عرض قبل نشره. وعند الدفع في المتجر، يُدخل الموظف رمز بطاقة العضو، فتظهر له فئة العضوية واسم العضو مختصراً، ويسجّل الفاتورة، وتُضاف النقاط إلى سجل يقبل الإضافة فقط ولا يُعدَّل فيه أي قيد. الأدوار معرّفة مرة واحدة وتفرضها الواجهة البرمجية، ورموز الدخول تبقى في ملفات تعريف ارتباط لا تستطيع النصوص البرمجية في المتصفح قراءتها، وكل إجراء حساس يُدوَّن في سجل تدقيق، ومرشّح الكلمات بالإنجليزية والعربية والفارسية لا تنطلي عليه اختلافات أشكال الحروف العربية والفارسية ولا الكلمات المكتوبة بحروف متباعدة ولا الأرقام الفارسية والعربية، ويرصد دائماً أرقام الهواتف الإماراتية والروابط وعناوين البريد الإلكتروني وأرقام الهوية الإماراتية وأرقام IBAN. ويأتي الموقع بالمظهر الذي اختاره المؤسسون: خلفية كريمية دافئة وحيوانات مفرّغة على أقواس ملوّنة؛ ولملئه نظّفنا صور الحيوانات المفرّغة الـ٢٠ التي أرسلها المؤسسون، واقتطعنا من ثمانٍ منها صوراً دائرية للوجوه.
ما الذي بنيناه
- لوحة للمنشآت ولوحة إدارة على واجهة API واحدة
- كل خدمة تأخذ أحد ثمانية أنماط حجز
- ثلاثة أسعار لكل خدمة: العادي وسعر SalamPet وسعر الأعضاء
- بطاقة عضوية تضيف النقاط عند الدفع في المتجر
- منشآت مرخّصة فقط، يراجعها الفريق قبل نشرها
- مرشّح كلمات بالإنجليزية والعربية والفارسية
النتيجة
انطلق الموقع في ١٩ أكتوبر ٢٠٢٦، وانتقلت الواجهة البرمجية واللوحتان إلى بيئة الإنتاج في اليوم التالي من دون أي بيانات تجريبية. يضم الموقع ١٩ صفحة: الرئيسية، ونظرة عامة على الخدمات، وسبع فئات للرعاية، وست صفحات للمنشآت، والعروض، وصفحة للمتجر، ونادي SalamPet، وصفحة للمنشآت تقود إلى التسجيل في لوحة المنشآت. وخلف تسجيل الدخول تضم اللوحتان ٢٩ شاشة، لوحة المنشآت بالإنجليزية والعربية ولوحة الإدارة بالإنجليزية والفارسية، وتعتمدان على ٧٩ مساراً في الواجهة البرمجية و٢١ جدولاً في قاعدة البيانات. وإلى أن تنضم منشآت حقيقية، تبقى المنشآت والأسعار والعروض والتقييمات على الموقع محتوى نموذجياً، لذلك يطلب الموقع من محركات البحث ألا تفهرسه. والخطوات التالية في قائمة المشروع نفسه هي جانب العملاء في الواجهة البرمجية، وربط الموقع به، وتطبيق للهاتف المحمول، والمدفوعات، على طريق التطبيق الشامل الذي يطمح إليه المؤسسون.
أجزاء النظام
موقع العملاء
واجهة SalamPet أمام أصحاب الحيوانات، بالمظهر الذي اختاره المؤسسون: بحث حسب نوع الرعاية والمنطقة، وسبع فئات تُصفّى حسب المنطقة ونوع الحيوان وتُرتَّب حسب التقييم أو السعر أو عدد الحجوزات، وصفحة لكل منشأة بخدماتها والأسعار الثلاثة لكل خدمة، والعروض، وصفحة للمتجر، ونادي SalamPet بفئاته الثلاث، وصفحة للمنشآت تقود إلى التسجيل في لوحتها. لكل صورة خانة باسم محدد، فتُستبدل الصورة بإضافة ملف بالاسم نفسه دون أي تغيير في الشيفرة. والمنشآت والأسعار والتقييمات على الموقع محتوى نموذجي إلى أن تنضم منشآت حقيقية ويُربط الموقع بالواجهة البرمجية.




لوحة المنشآت
هنا تدير كل منشأة تعمل في رعاية الحيوانات الأليفة أعمالها على SalamPet، بالإنجليزية أو العربية. وعلى المنشأة الجديدة أن تُكمل قائمة خطوات تشمل بيانات الترخيص والمستندات والخدمات وساعات العمل قبل أن تتمكن من إرسال ملفها للمراجعة. وبعد تفعيلها، يسجّل المالك والمديرون والموظفون الدخول كلٌّ بحسابه ودوره، والدور هو ما يحدد من يستطيع تأكيد الحجوزات وضبط الأسعار والعروض وتسجيل مبيعات بطاقة العضوية في المتجر والرد على التقييمات أو الاطلاع على كشوف المستحقات. ولا يصل رقم هاتف العميل كاملاً إلى المنشأة أبداً. الصور أدناه من تشغيل محلي ببيانات تجريبية وهمية.




لوحة الإدارة
هنا يدير فريق SalamPet المنصة، بالإنجليزية أو الفارسية، وبمستويين من الصلاحيات. يراجع المشرفون المنشآت والعروض والحجوزات والعملاء والتقييمات، أما العمولات وتعديل النقاط وقائمة الكلمات الحساسة وإصدار كشوف المستحقات وحسابات المشرفين وسجل التدقيق والإعدادات فهي حكر على كبار المشرفين (Super Admin). والواجهة البرمجية تفرض القواعد نفسها، فإخفاء زرٍّ ما ليس خط الحماية الوحيد أبداً. الصور أدناه من تشغيل محلي ببيانات تجريبية وهمية.



لديك ما يشبه ذلك؟
أرسل الموجز. سنخبرك بصراحة إن كنا الاستوديو المناسب له.
لا عروض تقديمية قبل أن نفهم المشكلة.
hello@4ai.ae