Halo semuanya! Saya ingin berbicara sedikit tentang bagaimana saya melakukannya, melakukan dan akan melakukan (mungkin) di waktu luang saya layanan perjalanan berikutnya untuk mencari tiket pesawat.
Tangkapan layar salah satu halaman:

Motivasi dan latar belakang
Sebelum terbang pergi berlibur, saya selalu menghadapi masalah memilih titik di peta tempat terbang. Masalah yang tampaknya mudah ini dapat dengan mudah diselesaikan dengan bantuan agregator tiket pesawat yang terkenal. Tetapi untuk beberapa alasan, sulit bagi saya untuk menyelesaikan karena alasan berikut:
- kebanyakan agregator memiliki pencarian yang kurang fleksibel (klise, tidak ada filter berdasarkan rentang tanggal kurang dari sebulan);
- pencarian fleksibel ala "di mana-mana" dan "kapan saja" dalam praktik jarang membantu;
Perlu juga dicatat blog perjalanan (komunitas tentang bepergian di jejaring sosial yang muncul di arus saya, dan situs dengan penawaran khusus, misalnya, fly4free ), mungkin membantu seseorang, tetapi bukan saya. Penawaran untuk tanggal yang diinginkan (bahkan perkiraan) tidak pernah tersedia.
Merenungkan topik ini, saya memutuskan bahwa ada baiknya mencoba melakukan sesuatu yang berbeda, bahkan jika itu tidak berhasil. Dan risiko kegagalan total (itu tidak akan mencapai penjualan) hebat - saya belum pernah melakukan layanan sendiri sebelumnya, selalu ada orang-orang yang berpengalaman di dekatnya dan mereka semua membuat bagian kecil mereka sendiri secara keseluruhan.
Untuk mengatasi masalah pemilihan, saya membentuk fitur berikut, yang saya lewatkan:
- Kit dengan tiket pesawat (untuk tujuan, minat, dll.);
- Rute sulit yang disiapkan, misalnya, titik A - titik B - titik C - titik A; (ternyata nanti, fitur ini sebagian diimplementasikan pada eightydays.me )
- Peta di mana Anda bisa membuat sendiri rute yang begitu rumit;
- Cari "di mana saja" dalam rentang tanggal yang fleksibel dengan filter dasar.
Selanjutnya, saya akan menjelaskan secara singkat setiap upaya dan hasil antara.
Mencoba # 1 # 0
Daftarkan nama domain yang indah di godaddy.com . Cari tim untuk uang Anda sendiri. Sewa server di digitalocean.com . Mulai dari pengembangan. Kegagalan.
Percobaan # 1
Kali ini, saya memutuskan untuk tidak terburu-buru dengan domain, tim, dan server yang indah. Saya melakukan semuanya secara lokal di macbook air lama saya dengan RAM 4GB.
Diputuskan bahwa tidak perlu melakukan semuanya sekaligus, tetapi setidaknya melakukan sesuatu. Sesuatu berubah menjadi fitur Kompilasi dengan tiket pesawat . Seperti yang menurut saya (sekitar dua bulan lalu), sepertinya yang terbaik dari semuanya. Untuk ini saya perlu:
- Memahami API yang memberikan tiket keluar dari cache dan memahami cara mendapatkan informasi yang berguna dengan benar; (mereka dijelaskan dengan baik, tidak ada masalah dengan ini)
- Buat API Anda sendiri, yang menyiapkannya untuk visualisasi di situs; (dalam python dan termos saya sudah tahu bagaimana melakukan ini, ini juga ok);
- Perluas postgres untuk direktori - bandara, negara, minat, dll.; (masukkan dua klik)
- Luaskan clickhouse untuk menyimpan data dan log perantara; (anehnya, itu juga siap digunakan dalam 5 menit, bahkan pada macbook air lama dengan RAM 4GB)
- Untuk berteman (membuat kamus) postgres dan clickhouse;
- Temukan layanan geografis gratis untuk menentukan lokasi;
- Pilih kerangka kerja untuk situs - pilihan jatuh pada vue (vuetify), sebagai kerangka kerja dengan ambang masuk terendah (menurut beberapa teman saya). Semua pengalaman pengembangan web saya sampai saat ini hanya menggunakan flask-admin. Pengembangan web adalah yang paling bermasalah.
Hasilnya dapat dilihat di cheapster.travel/collections (dari perangkat seluler - lihat gambar)
Pada tahap ini, saya memilih nama domain dan menyewa server dari hetzner seharga $ 5.
Selama upaya ini, fitur rute Ready complex juga diimplementasikan dalam bentuk koleksi terpisah, tetapi sekarang fungsi ini dinonaktifkan karena masalah kinerja - server seharga $ 5 tidak cukup untuk menyelesaikan masalah ini.
Upaya ini memakan waktu 3-4 minggu secara intermiten (malam-malam-akhir pekan).
Percobaan # 2
Saya memerlukan peta, saya pikir, dan mulai menerapkan fitur-fitur Peta, di mana Anda dapat membangun rute yang begitu kompleks sendiri .
Setelah satu jam googling dan konsultasi singkat dengan seorang teman, saya memilih mapbox , yaitu paket mapbox-gl-vue untuk vue.
Dengan kartu itu, semuanya ternyata jauh lebih rumit dari yang saya harapkan. Karena itu, ia segera meninggalkan harapan untuk menjadi cantik secara subyektif. Maka saya akan melakukan upaya lain untuk membuat kartu lebih baik dan lebih fungsional.
Inti dari fitur ini:
- Peta dengan harga dari kota Anda ditampilkan;
- Pilih opsi yang menarik untuk harga di peta;
- Setelah memilih opsi, data pada peta dimuat ulang untuk titik yang dipilih;
- Ulangi langkah-langkah di atas beberapa kali yang diinginkan.
Hasil dari cheapster.travel/map
Upaya ini memakan waktu 1-2 minggu (malam, malam, akhir pekan).
Percobaan # 3
Setelah liburan Tahun Baru, waktunya telah tiba untuk fitur Pencarian "di mana-mana" dalam rentang tanggal yang fleksibel .
Ini adalah upaya termudah - hampir semua metode di API telah diterapkan sebelumnya, Anda hanya perlu sedikit memutar dan menggambar menggunakan vuetify (sudah memiliki sedikit pengalaman).
Inti dari fitur:
- Pencarian sederhana namun fungsional pada rentang tanggal yang fleksibel;
- Ada filter dasar (tidak ada visa, hanya langsung, dll.)
Hasil dari cheapster.travel/simple

Upaya ini memakan waktu 2 siang. Upaya paling sukses.
Alih-alih total
Tumpukan masih memiliki banyak tugas. Saya harap upaya ini membawa saya lebih dekat untuk menyelesaikan masalah pilihan sebelum liburan. Dan bahkan lebih baik, jika bukan hanya saya.
Semoga hari kalian menyenangkan!