Pelajaran 1Desain dompet: tiket aktif, siklus hidup tiket, kedaluwarsa, skenario pemulihan dan transferRancang dompet yang mengelola tiket aktif, mendatang, dan kedaluwarsa. Anda akan memodelkan state tiket, validasi, kedaluwarsa, dan perubahan perangkat, sambil mendukung pemulihan, transfer, dan pencegahan penipuan dalam antarmuka yang jelas dan dapat diprediksi.
Mesin state tiket dan event siklus hidupTampilan tiket aktif, mendatang, dan kedaluwarsaState validasi dan petunjuk keamanan visualAlur pemulihan setelah reinstall atau kehilangan perangkatAturan transfer, batas, dan kontrol penipuanPelajaran 2UI/UX perencana perjalanan: input wajib (asal, tujuan, waktu, preferensi) dan elemen output (rute, durasi, transfer, segmen berjalan)Rancang UI perencana perjalanan dari input hingga hasil. Anda akan menentukan field wajib, kontrol preferensi, dan kartu hasil, memastikan aksesibilitas, kejelasan trade-off, dan perbandingan cepat antara rute dan mode alternatif.
Form input untuk asal, tujuan, dan waktuKontrol preferensi untuk mode dan berjalanMerancang kartu hasil rute dan ringkasanTampilan detail untuk kaki perjalanan, transfer, dan tarifPertimbangan aksesibilitas dan lokalisasiPelajaran 3Kontrol pengguna untuk peringatan: langganan, jam tenang, filter per jalur, aksesibilitas peringatanRancang kontrol pengguna yang mengatur peringatan mana yang diterima. Anda akan mengimplementasikan langganan, jam tenang, filter per jalur, dan opsi aksesibilitas sehingga penumpang dapat menyesuaikan relevansi sambil tetap menerima pesan keselamatan kritis.
Model langganan: jalur, stasiun, ruteJam tenang, jangan ganggu, dan overrideOpsi filter per jalur dan per topikKategori peringatan kritis vs opsionalPengaturan aksesibilitas untuk pengiriman peringatanPelajaran 4Pengiriman peringatan real-time: push notification, WebSocket/Socket.IO, server-sent events, dan polling cadanganJelajahi saluran pengiriman peringatan real-time dan trade-off. Anda akan membandingkan push, WebSocket, SSE, dan polling, merancang koneksi ulang dan backoff, serta memastikan peringatan tetap tepat waktu, tidak duplikat, dan hemat daya di perangkat mobile.
Memilih push vs WebSocket vs SSE vs pollingManajemen koneksi dan logika koneksi ulangPengurutan, deduplikasi, dan peringatan idempotenBaterai, penggunaan data, dan batas latar belakangStrategi cadangan saat real-time gagalPelajaran 5Peringkat dan filter rute: tercepat, transfer terendah, aksesibilitas, jalan kaki paling sedikitRancang logika peringkat yang menyeimbangkan kecepatan, transfer, jalan kaki, dan aksesibilitas. Anda akan menentukan filter, model skor, aturan tie-breaking, dan pola UX sehingga penumpang dapat dengan cepat menemukan rute yang sesuai dengan preferensi dan kendala mereka.
Peringkat berdasarkan waktu, transfer, dan jarak berjalanSkor rute sadar aksesibilitas dan penaltiFilter dan preset yang dapat dikonfigurasi penggunaMenangani data GTFS tidak lengkap atau berkualitas rendahMenjelaskan peringkat dengan label UI yang jelasPelajaran 6Event analitik untuk fitur inti: pencarian perjalanan, pembelian tiket, interaksi peringatanTentukan analitik untuk pencarian perjalanan, pembelian tiket, dan peringatan. Anda akan merancang skema event, properti pengguna, funnel, dan kontrol privasi yang membantu meningkatkan fitur sambil menghormati regulasi dan ekspektasi pengguna.
Event inti untuk pencarian, pembelian, dan peringatanPenamaan event, versi, dan skemaFunnel, kohort, dan analisis retensiAtribusi peringatan ke aksi penggunaPrivasi, persetujuan, dan minimisasi dataPelajaran 7Alur pembelian tiket: katalog produk, aturan tarif, kursi/reservasi vs model bukti pembayaranRancang alur pembelian tiket dari pemilihan produk hingga konfirmasi. Anda akan memodelkan aturan tarif, pass, reservasi, dan bukti pembayaran, memastikan kejelasan, validasi, dan kompatibilitas dengan backend agensi.
Struktur katalog produk dan keluarga tarifAturan tarif, zona, batas, dan konsesiReservasi kursi vs bukti pembayaran terbukaMemvalidasi kelayakan dan tipe penumpangDesain konfirmasi pembelian dan tanda terimaPelajaran 8Alur pengguna dari peluncuran aplikasi hingga hasil rute: izin, akses lokasi, aksi cepat, pencarian terbaruPetakan perjalanan end-to-end dari peluncuran aplikasi hingga hasil rute. Anda akan merancang prompt izin, penanganan lokasi, pintasan, dan pencarian terbaru sehingga penumpang dapat mencapai opsi perjalanan relevan dengan gesekan minimal dan ekspektasi privasi yang jelas.
Cold start, splash, dan keputusan onboardingMeminta dan menjelaskan izin lokasiAksi cepat, favorit, dan pintasan rumah-kerjaPencarian terbaru, peringkat terbaru, dan pembersihanMenangani izin ditolak dan lokasi manualPelajaran 9Presentasi peringatan dalam aplikasi: inbox, banner, peringatan rute kontekstual, personalisasi dan prioritasTentukan bagaimana peringatan muncul di dalam aplikasi di berbagai konteks. Anda akan merancang inbox, banner, dan permukaan kontekstual, dengan prioritas, pengelompokan, dan personalisasi yang menjaga penumpang tetap terinformasi tanpa membanjiri mereka.
Tata letak inbox peringatan dan opsi filterBanner sementara, toast, dan modalPeringatan kontekstual pada tampilan rute dan tiketPrioritas, pengelompokan, dan batas lajuPersonalisasi berdasarkan penggunaan dan jalurPelajaran 10Penanganan error dan pola retry selama kegagalan pembelian dan jaringanPelajari pola untuk menangani kegagalan pembelian dan jaringan tanpa kehilangan kepercayaan pengguna. Anda akan merancang retry, operasi idempoten, antrian offline, dan pesan error yang jelas yang melindungi pembayaran dan menghindari tagihan duplikat atau tiket rusak.
Mengklasifikasikan kegagalan sementara vs permanenMerancang strategi retry dan backoff yang amanKunci idempotensi untuk operasi pembayaranAntrian offline dan log operasi lokalPesan error pengguna dan alur pemulihanPelajaran 11Integrasi pembayaran: halaman hosted vs SDK dalam aplikasi, pengurangan ruang lingkup PCI, tokenisasiJelajahi opsi integrasi pembayaran dan batas keamanan. Anda akan membandingkan halaman hosted dan SDK dalam aplikasi, merancang tokenisasi, dan mengurangi ruang lingkup PCI sambil menjaga checkout lancar, tepercaya, dan patuh.
Trade-off checkout hosted vs SDK nativeMengurangi ruang lingkup PCI dengan tokenisasi3-D Secure, SCA, dan aturan regionalMenangani penolakan, pembalikan, dan pengembalian danaMenyimpan dan memperbarui instrumen pembayaranPelajaran 12Penyimpanan lokal untuk tiket: opsi penyimpanan aman (database terenkripsi, keystore/Keychain) dan tokenisasiPelajari pola penyimpanan lokal aman untuk tiket dan token. Anda akan membandingkan database terenkripsi, Keychain atau Keystore, dan API platform, merancang rotasi kunci, perilaku cadangan, dan perlindungan terhadap pemalsuan atau kloning.
Model ancaman untuk tiket dan token tersimpanMenggunakan Keychain atau Keystore untuk rahasiaDatabase terenkripsi untuk metadata tiketRotasi kunci, pencabutan, dan migrasiCadangan, pemulihan, dan perilaku multi-perangkat