جيثب: https://github.com/mohdjami/Travel
الرابط المنشور: https://travelplanai.vercel.app/
فيديو يوتيوب: https://youtu.be/oeioDsKQ4cQ?si=U35aBhen3L3zJApq
الرسم البياني أعلاه يعطي نظرة عامة عالية المستوى للتطبيق والخدمات والحلول.
لقد قمت بالاستفادة من Next.js، وSupabase، وGemini-1.5-flash Model، وShadcn، وTypescript، وTailwind CSS.
يستخدم Supabase لمصادقة المستخدمين وتفويضهم
لماذا Supabase للمصادقة وتخزين البيانات؟
جيثب
أوراق اعتماد
لقد استخدمنا هنا نموذج Google Gemini-1.5-flash.
Next.js لبناء تطبيق المكدس الكامل.
يعد Next.js خيارًا ممتازًا بسبب العرض من جانب الخادم وإنشاء الموقع الثابت وتحسين محركات البحث.
بعد استلام تفضيلات المستخدم من نموذج خط سير الرحلة، يتم إرسال طلب إلى الواجهة الخلفية مع جميع البيانات.
يتم بعد ذلك استخدام خط سير الرحلة في المكونات لعرض البيانات. لقد قمت أيضًا بدمج الخرائط من المنشور.
Gemini-1.5-flash هو نموذج ذكاء اصطناعي متقدم تم تطويره بواسطة Google ويعمل على تشغيل إنشاء مسار الرحلة في تطبيقنا. يتفوق هذا النموذج في فهم تفضيلات السفر المعقدة وإنشاء مسارات مفصلة وشخصية. من خلال الاستفادة من Gemini-1.5-flash، أصبحنا قادرين على إنشاء خطط سفر مخصصة للغاية تأخذ في الاعتبار عوامل مثل قيود الميزانية والاهتمامات الشخصية ومدة الرحلة.
إنه يقدم العديد من المزايا الرئيسية لتطبيق خط سير الرحلة الخاص بنا. أولاً، يمكن لإنشاء مسارات الرحلات المدعومة بالذكاء الاصطناعي معالجة كميات هائلة من البيانات حول الوجهات والمعالم السياحية وتفضيلات المستخدم بشكل أسرع وأكثر كفاءة من الطرق اليدوية. ثانيًا، فهو يسمح بتقديم توصيات مخصصة للغاية يمكنها التكيف مع الاهتمامات والقيود الفريدة لكل مستخدم. وأخيرًا، يمكن للذكاء الاصطناعي أن يتعلم باستمرار ويحسن اقتراحاته بناءً على تعليقات المستخدمين واتجاهات السفر، مما يضمن بقاء تطبيقنا ملائمًا وقيمًا للمسافرين.
Leaflet هي مكتبة جافا سكريبت مفتوحة المصدر للخرائط التفاعلية الملائمة للجوال. لدمج خرائط النشرة في تطبيق خط سير الرحلة الخاص بنا، اتبعنا الخطوات الرئيسية التالية:
من خلال دمج خرائط المنشورات، قمت بتحسين تجربة المستخدم من خلال توفير سياق مرئي لكل وجهة ونشاط ضمن مسارات الرحلة التي تم إنشاؤها.
لقد واجهت أيضًا مشكلة في النشرة وهي أن مكون الخريطة لم يتم تحميله بنسبة 100% مما أدى إلى حدوث أخطاء وعدم تحميل الصفحة بشكل صحيح. لذلك عالجت هذه المشكلة بهذا الحل.
لتحسين تجربة المستخدم وإدارة استخدام واجهة برمجة التطبيقات (API)، قمت بتطبيق نظام قائم على الاعتمادات. وإليك كيف يعمل:
يتيح لنا هذا النظام التحكم في تكاليف واجهة برمجة التطبيقات (API) مع توفير المرونة للمستخدمين في استخدام الخدمة.
توفر لوحة المعلومات للمستخدمين نظرة عامة على مسارات الرحلات التي تم إنشاؤها، والأرصدة المتبقية، ومعلومات الحساب. تشمل الميزات الرئيسية ما يلي:
يتيح قسم ملف تعريف المستخدم والإعدادات للمستخدمين تخصيص تجربتهم وإدارة معلومات حساباتهم. تشمل الميزات الرئيسية لهذا القسم ما يلي:
لزيادة وقت الاستجابة لإنشاء Itineray، قمت بتطبيق نظام قائمة الانتظار.
معالجة كافة المهام غير الهامة باستخدام قائمة الانتظار.
على الرغم من وجود خطأ بعد إنشاء مسارات الرحلة، يجب أن تكون هناك آلية احتياطية. في الوقت الحالي، إذا كان هناك أي خطأ في تغذية البيانات في قاعدة البيانات، فلا توجد آلية احتياطية بسبب فقدان مسار الرحلة والتي تحتاج إلى إصلاح.
لقد قمت حاليًا بتعطيل سياسات RLS. سوف تعمل على هذا
مشكلة:
يستغرق مسار إنشاء السفر الكثير من الوقت لإنشاء مسارات الرحلة.
يحتوي على عدة عمليات:
حل:
من خلال تحليل المسار بعناية، يمكنني التأكد من أن إدراج تفضيلات المستخدم وإدراج الاستجابة وتحديث الاعتمادات هي مهام غير حاسمة وأن إرسال الرد إلى المستخدم هو المهمة الحاسمة الرئيسية.
حتى أتمكن من تنفيذ هذه المهام غير الحرجة بشكل غير متزامن باستخدام قائمة الانتظار.
يمكن لهذا النهج غير المتزامن أن يقلل كثيرًا من وقت الاستجابة.
يمكن أن يؤدي تنفيذ آلية التخزين المؤقت إلى تحسين الأداء ووقت الاستجابة لتطبيق خط سير الرحلة الخاص بنا بشكل كبير. من خلال التخزين المؤقت للبيانات التي يتم الوصول إليها بشكل متكرر، مثل الوجهات الشائعة أو تفضيلات المستخدم الشائعة، يمكننا تقليل الحمل على خوادمنا وتقديم نتائج أسرع للمستخدمين. قد يكون هذا مفيدًا بشكل خاص للمستخدمين المتكررين أو لعرض التوصيات الأولية أثناء إنشاء نتائج أكثر تخصيصًا.
سأفعل ذلك من أجل لوحة المعلومات، وسأقوم بتخزين مسارات السفر التي تمت زيارتها مؤخرًا مما سيقلل من عدد الطلبات إلى قاعدة البيانات مما يجعل التطبيق أسرع في النهاية.
تم إرساء التطبيق لسهولة النشر على AWS Elastic Container Service، وهو أفضل أسلوب للتوسع التلقائي.
يتم نشره حاليًا على Vercel للاستخدام التجريبي.