Ketika pertama kali dibuka, aplikasi akan meminta pengguna memasukkan informasi:
- Nama
- Nomor HP
- Password (untuk keperluan latihan kali ini plain text saja)
Setelah diinput, aplikasi akan menyimpan data-data tersebut ke dalam file user.json
.
Catatan: Apabila aplikasi dibuka untuk kedua kali-nya dan file `user.json` sudah ada, maka langsung ke step 2.
Setelah selesai input data awal, aplikasi akan menampilkan halaman login dengan input:
- Email/Nomor HP
- Password
Jika berhasil, user akan masuk ke aplikasi (masuk step 3).
Jika gagal, aplikasi menampilkan kembali halaman login dengan pesan:
"Kombinasi Email/Nomor HP dan Password yang Anda masukkan salah".
Setelah berhasil login, aplikasi akan menampilkan menu:
- Lihat Profil
- Pesan Gojek
- Lihat Riwayat Transaksi
Jika pengguna memilih menu "Lihat Profil", aplikasi akan menampilkan:
- Profil yang tersimpan pada file "user.json"
- Menu "Ubah Profil"
- Menu "Kembali ke Menu Utama"
Jika memilih menu "Ubah Profil", aplikasi akan meminta pengguna memasukkan informasi:
- Nama
- Nomor HP
- Password
Field yang diisi akan berubah informasinya pada user.json
jika pengguna memilih menu "Simpan".
Semua perubahan akan diabaikan jika pengguna memilih menu "Batal".
Jika pengguna memilih menu Pesan Gojek, aplikasi akan meminta pengguna memasukkan informasi lokasi saat ini.
Kemudian aplikasi akan meminta pengguna memasukkan lokasi tujuan.
Aplikasi kemudian akan menghitung biaya yang harus dibayarkan dengan rumus: jarak antar lokasi (float) * 1500
hanya apabila lokasi dilayani.
# Daftar lokasi yang bisa diinput beserta koordinatnya masing-masing (dengan tipe data Point) tersimpan pada file "locations.json".
# Jika lokasi Asal atau Tujuan tidak ada pada daftar lokasi ketika menghitung biaya, aplikasi menampilkan pesan "Belum melayani rute tersebut".
Aplikasi kemudian menampilkan tampilan review pesanan dan menu:
- Menu "Pesan"
- Menu "Ulangi"
- Menu "Kembali ke Menu Utama"
Jika pengguna memilih menu Pesan
maka aplikasi akan menyimpan data transaksi ke file orders.json
. Data-data yang disimpan adalah sebagai berikut:
- Timestamp
- Asal
- Tujuan
- Biaya
Jika pengguna memilih menu "Lihat Riwayat Transaksi", aplikasi akan menampilkan daftar riwayat transaksi yang terdapat di file "orders.json" ke layar
Apabila flow utama di atas telah selesai sebelum waktu berakhir, maka peserta dapat memilih 1 atau lebih flow ekstra berikut ini sebagai nilai tambah:
- Buatlah file
fleet_loc.json
dengan contoh isi sebagai berikut:
[
{
driver: "Budi",
coord: [1,2]
},
{
driver: "Anna",
coord: [-20,5]
},
...dst
]
Gunakan file tersebut untuk menentukan seseorang akan mendapatkan go-jek atau tidak dari lokasi dia berada saat ini. Apabila jaraknya (1.0) atau kurang, maka asumsikan user mendapatkan armada tersebut, apabila tidak ada yang sesuai maka asumsikan user tidak mendapatkan go-jek sehingga perlu diberikan pilihan untuk mengulang atau kembali ke menu utama.
Pindahkan coord driver go-jek apabila order terkonfirmasi.
(Nilai tambah: 15)
- User dapat memilih
gojek
ataugocar
ketika memesan kendaraan. Perbedaan-nya adalahgocar
tarifnya lebih mahal, yaitu2500
. Filefleets_loc.json
juga perlu diupdate sehingga menyimpan tipe armada.
(Catatan: perlu mengerjakan flow ekstra nomor 1) (Nilai tambah: 8)
- Terdapat menu baru untuk melakukan top-up saldo
go-pay
. Ketika memesan kendaraan, pengguna dapat memilih melakukan pembayaran dengan uang tunai ataugo-pay
. Apabila dengango-pay
maka saldo akan berkurang. Lengkapi juga dengan validasi apabila saldo tidak mencukupi.
(Nilai tambah: 5)
- Terdapat file
promo.json
yang berisi kode voucher. Kode voucher dapat berupa potongan harga tunai atau potongan harga persentase. User dapat diminta memasukkan kode voucher ketika memesan kendaraan untuk mendapatkan potongan harga.
(Nilai tambah: 2)
-
Terdapat unit-test yang lengkap dan menguji karakteristik aplikasi berdasarkan spek di atas dengan baik. Unit test ketika dijalankan terhadap aplikasi tidak mengembalikan error.
-
Aplikasi dibentuk dengan prinsip OO yang baik, ditandai dengan desain kelas yang baik, memiliki karakteristik SRP dan DRY serta dapat dijelaskan dan diargumentasikan dengan baik ketika tahap demo.
-
Coding convention go-jek diterapkan dengan baik.
-
Nilai tambah:
- Mengerjakan flow ekstra
- Aplikasi mampu menangani aksi tidak terduga user
gojek-cli's People
Forkers
kohdenih80Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.