Ega’s Journal — Week 13
This is the 13th post for my journal. The end of the sprint, from this point onward (well at least for some time) i’ll use indonesian for my report, so for non-native please bear with me.
TASKS DONE
Pada akhir sprint ini saya berhasil menyelesaikan semua task yang saya ambil. yaitu mengimplementasikan login-logout untuk admin, membuat halaman untuk melakukan penambahan quote, serta membuat halaman statistik.
untuk halaman login-logout kendala sebelumnya yaitu mengimplementasikan dua jenis database pada laravel (MongoDB dan MySQL) telah berhasil ditemukan solusinya, saya melakukan setting ulang pada konfigurasi database. kemudian merubah model Eloquent dari MongoDB sehingga koneksi dilakukan pada model. sehingga untuk default database menggunakan MySQL. Kesulitan instalasi mongo-driver akhirnya sudah dapat ditemukan solusinya dengan dibantu oleh Haryo Akbarianto Wibowo. Login dan logout sudah dapat dilakukan dengan menggunakan id dan password yang sudah tersimpan didatabase (password yang disimpan sudah di hashing) autentikasi dilakukan dengan menggunakan middleware sehingga semua request yang masuk pada http akan diarahkan ke middleware untuk mengecek apakah user sudah ter-autentikasi atau belum . Bukti dari pengerjaan ini dapat dilihat di github/Alieff/timAul pada branch-ega.
Kemudian untuk halaman penambahan quote saya buat menggunakan laravel form syntax, kemudian untuk memasukkan data kedalam database saya membuat fungsi dalam CRUDController.php yang membaca data dari form untuk kemudian dengan memanfaatkan class Eloquent dari MongoDB saya memasukkan datanya ke database, selain itu untuk keperluan statistik fungsi tersebut juga saya buat agar memanggil fungsi update yang akan melakukan penghitungan jumlah quote yang ada di database. mencatat waktu penghitungan kemudian memasukannya kedalam database lagi-lagi dengan memanfaatkan class Eloquent dari MongoDB. Bukti dari pengerjaan dapat dilihat di GitHub.com/Alieff/timAul pada branch-ega
Untuk halaman statistik saya menggunakan chartjs untuk melakukan render grafik garis yang memetakan jumlah quote pada waktu tertentu. data diambil dari database, data dihasilkan dari proses update yang akan dilakukan apabila proses CRUD dilakukan (nantinya fitur Update, dan Delete akan saya buat agar memanggil fungsi update setelah menjalankan fungsinya. belum apat diimplementasikan karena fitur update dan delete masih dikerjakan oleh member yangg lain). Bukti pengerjaan dapat dilihat di github.com/Alieff/timAul pada branch-ega
UNIT TESTING
Unit testing menurut PMBOK adalah: “Pengujian bagian terkecil dari sebuah code, bagian terkecil ini adalah bisa sebuah fungsi, module atau class dari sistem tersebut. ini dilakukan bertujuan untuk memastikan code dapat berjalan sesuai yang diharapkan.”
karena kami menggunakan framework laravel yang berbasis php saya melakukan Unit Testing menggunakan phpunit, kemudian yang saya lakukan adalah mengedit file ExampleTest dan membuat test-test dalam bentuk fungsi fungsi sebagai berikut:
- Melakukan test authentication apabila user belom melakukan login dan ingin mengakses dashboard: pertama visit(‘admin/dashboard’) seharusnya dapat see tulisan login artinya user di redirect kehalaman login dan user don’t see statistic yang artinya user tak dapat melihat halaman dashboard karena belum login.
- Melakukan test authentication apabila user sudah melakukan login dan ingin mengakses dashboard: pertama dengan menggunakan model factory saya membuat fake user kemudian dengan menggunakan actingAs artinya login/akses sebagai user fake tadi kemudian mencoba melakukan visit admin/dashboard seharusnya user see $user->name artinya dapat melihat nama user fake yang dibuat tadi karena sudah berhasil login dan see “Dashboard” yang artinya user dapat melihat halaman dashboard admin karena telah melakukan login.
3. Kemudian melakukan test pada halaman statis yang sudah sebelumnya dibuat dengan melakukan visit.
4. kemudian test halaman yang saya buat untuk task ini yaitu Add Quote page
berikut hasil unit test menggunakan phpunit
ANALYSE DESIGN
(Analisis Desain v01)
Saya akan melakukan analisis pada desain database yang telah dibuat sebelumnya, pada database diatas User memiliki attribut username, password, id, name, dan description. dikarenakan attribut description tidak digunakan pada program dan web kami maka, dapat dihapus. sedangkan name juga tidak perlu disimpan sehingga dapat dihapus, untuk bagian quote sendiri attribut yang perlu ditambahkan antara lain adalah category dari quote dan juga language dari quote.
(Analisis Desain v03)
Kemudian karena akan ditambahkan collection baru yaitu statistic maka desain database perlu ditambahkan class baru yaitu class Statistic dimana attributnya adalah id, total(jumlah quote), serta tim (timestamp update statistik).