Software Architecture

Mutia Rahmatun Husna
2 min readApr 29, 2020

--

source: freepik

Pada perkuliahan PPL ini, saya dan kelompok saya mendapatkan tanggung jawab untuk membuat suatu aplikasi berbasis mobile yang diperuntukkan bagi anggota koperasi. Pengguna yang bisa mengunakan aplikasi ialah mereka yang telah terdaftar secara langsung sebagai Anggota dari KSPPS Nur Insani. Pengguna cukup mengisi data-data yang diperlukan untuk registrasi di aplikasi tersebut. Sebagai contoh, apabila seseorang ingin membuat akun, maka datanya akan divalidasi terlebih dahulu dengan melakukan validasi id_member. Aplikasi ini dapat memudahkan pengguna untuk melihat jumlah saldo, simpanan, dan beberapa data lainnya yang ia miliki. Klien dari proyek ini adalah Koperasi KSPPS Nur Insani.

Backend

Kami menggunakan NodeJS. Backend akan berperan sebagai REST API server yang akan digunakan oleh komponen front-end.

Front-end

Untuk front-end, kami menggunakan React Native. Bagian front-end akan berisi sebuah halaman-halaman static yang akan berinteraksi dengan backend.

Database

Database yang kami gunakan ialah MongoDB. MongoDB adalah salah satu jenis database NoSQL yang berbasis dokumen dengan fomat JSON.

Docker

Apakah kamu pernah mendengar mengenai Docker? Docker merupakan container platform yang sedang terkenal saat ini. Docker mempermudah para developer dalam mendistribusikan aplikasinya karena seluruh aplikasi yang dijalankan melalui Docker akan menjamin environment-nya akan sama sehingga menghapus permasalahan ‘tadi bisa di laptop gue kok’ yang biasanya ditemui oleh para developer (terutama yang menggunakan OS yang berbeda pada saat pengembangan aplikasi). Pada aplikasi yang sedang kami kembangkan, kami menggunakan docker. Alasannya simple, karena Docker mempermudah kami dalam melakukan deployment ke server.

Deployment

Kami menggunakan GitLab CI/CD untuk melakukan deployment secara otomatis. Hal ini dilakukan agar mengurangi beban dalam bekerja dan menghindari human error yang sering terjadi.

sedikit potongan code gitlab-ci.yml

Berikut tahapan dari deployment pipeline kami

  1. Test: Karena PPL mengajarkan kami untuk menggunakan filosofi TDD, tentu saja test akan dijalankan sebelum deployment. Kami menggunakan Jest untuk ini.
  2. Static Code Analysis (dengan SonarQube): Kami juga menggunakan SonarQube untuk static code analysis untuk mengurangi kemungkinan bug yang terjadi.
  3. Build: Setelahnya kami mem-build kode kami sehingga terdapat hasil production-nya.

Demikian sharing saya, feel free to comment!

--

--

No responses yet