Github: https://github.com/mohdjami/Travel
Tautan yang Dikerahkan: https://travelplanai.vercel.app/
Video YT: https://youtu.be/oeioDsKQ4cQ?si=U35aBhen3L3zJApq
Diagram di atas memberikan gambaran umum tingkat tinggi tentang Aplikasi, layanan, dan solusi.
Saya telah memanfaatkan Next.js, Supabase, Gemini-1.5-flash Model, Shadcn, TypeScript, dan Tailwind CSS.
Supabase digunakan untuk Mengautentikasi dan mengotorisasi pengguna
Mengapa Supabase untuk Otentikasi dan Penyimpanan Data?
Github
Kredensial
Di sini kami telah menggunakan Model Google gemini-1.5-flash.
Next.js untuk membangun aplikasi full stack.
Next.js adalah pilihan yang sangat baik karena Rendering Sisi Server, Pembuatan Situs Statis, dan SEO.
Setelah menerima Preferensi Pengguna dari Formulir Rencana Perjalanan, permintaan dikirim ke Backend dengan semua datanya.
Rencana perjalanan kemudian digunakan di Komponen untuk menampilkan data. Saya juga telah mengintegrasikan peta dari brosur.
Gemini-1.5-flash adalah model AI canggih yang dikembangkan oleh Google yang mendukung pembuatan rencana perjalanan dalam aplikasi kita. Model ini unggul dalam memahami preferensi perjalanan yang kompleks dan menghasilkan rencana perjalanan yang terperinci dan dipersonalisasi. Dengan memanfaatkan flash Gemini-1.5, kami dapat membuat rencana perjalanan yang sangat disesuaikan dengan mempertimbangkan faktor-faktor seperti keterbatasan anggaran, minat pribadi, dan durasi perjalanan.
Ini menawarkan beberapa keuntungan utama untuk aplikasi rencana perjalanan kami. Pertama, pembuatan rencana perjalanan yang didukung AI dapat memproses sejumlah besar data tentang tujuan, objek wisata, dan preferensi pengguna dengan lebih cepat dan efisien dibandingkan metode manual. Kedua, hal ini memungkinkan rekomendasi yang sangat dipersonalisasi yang dapat beradaptasi dengan minat dan batasan unik setiap pengguna. Terakhir, AI dapat terus mempelajari dan menyempurnakan sarannya berdasarkan masukan pengguna dan tren perjalanan, memastikan aplikasi kami tetap relevan dan berharga bagi wisatawan.
Leaflet adalah perpustakaan JavaScript sumber terbuka untuk peta interaktif ramah seluler. Untuk mengintegrasikan peta Leaflet ke dalam aplikasi rencana perjalanan kami, kami mengikuti langkah-langkah utama berikut:
Dengan menggabungkan peta Leaflet, saya meningkatkan pengalaman pengguna dengan menyediakan konteks visual untuk setiap tujuan dan aktivitas dalam rencana perjalanan yang dibuat.
Saya juga menghadapi masalah dengan brosur yaitu komponen Peta tidak dimuat 100% yang menyebabkan kesalahan dan halaman tidak dimuat dengan benar. Jadi saya mengatasi masalah ini dengan solusi ini.
Untuk meningkatkan pengalaman pengguna dan mengelola penggunaan API, saya menerapkan sistem berbasis kredit. Begini cara kerjanya:
Sistem ini memungkinkan kami mengontrol biaya API sekaligus memberikan fleksibilitas kepada pengguna dalam menggunakan layanan.
Dasbor memberi pengguna gambaran umum tentang rencana perjalanan yang mereka buat, sisa kredit, dan informasi akun. Fitur utama meliputi:
Bagian Profil Pengguna dan Pengaturan memungkinkan pengguna untuk menyesuaikan pengalaman mereka dan mengelola informasi akun mereka. Fitur utama dari bagian ini meliputi:
Untuk meningkatkan waktu respons dalam menghasilkan Itineray, saya menerapkan sistem antrian.
Memproses semua tugas non-kritis menggunakan antrian.
Meskipun ada kesalahan setelah membuat Rencana Perjalanan, harus ada mekanisme cadangan. Saat ini jika ada kesalahan dalam memasukkan data ke database, tidak ada mekanisme fallback yang menyebabkan Itinerary hilang dan perlu diperbaiki.
Untuk saat ini saya telah menonaktifkan Kebijakan RLS. Akan mengerjakan ini
Masalah:
Rute pembangkitan perjalanan membutuhkan banyak waktu untuk menghasilkan rencana perjalanan.
Ini berisi beberapa proses:
Larutan:
Dengan menganalisis rute dengan cermat, saya dapat menyimpulkan bahwa Memasukkan Preferensi Pengguna, Memasukkan Respons, dan Memperbarui Kredit bukanlah tugas yang penting dan mengirimkan respons kepada pengguna adalah tugas penting yang utama.
Jadi saya dapat melakukan Tugas-Tugas non-Kritis ini secara Asinkron dengan menggunakan antrian.
Pendekatan asinkron ini dapat mengurangi banyak Waktu Respons.
Menerapkan mekanisme caching dapat meningkatkan kinerja dan waktu respons aplikasi rencana perjalanan kita secara signifikan. Dengan menyimpan data yang sering diakses dalam cache, seperti tujuan populer atau preferensi umum pengguna, kami dapat mengurangi beban pada server kami dan memberikan hasil yang lebih cepat kepada pengguna. Hal ini bisa sangat bermanfaat bagi pengguna berulang atau untuk menampilkan rekomendasi awal sementara hasil yang lebih dipersonalisasi dihasilkan.
Saya akan melakukan ini untuk Dasbor, saya akan menyimpan Rencana Perjalanan yang baru-baru ini saya kunjungi yang akan mengurangi jumlah permintaan ke Basis Data yang pada akhirnya membuat aplikasi Lebih Cepat.
Melakukan Docker pada aplikasi untuk kemudahan penerapan di AWS Elastic Container Service yang merupakan pendekatan terbaik untuk penskalaan otomatis.
Saat ini digunakan di Vercel untuk penggunaan demo.