Skip to content

Project About

Selamat datang di SuperApp PPSDM Migas. SuperApp pada dasarnya adalah gabungan dari beberapa layanan.

Prinsip

Dalam pengembangan, project ini menerapkan konsep microservice dengan pendekatan orchestration dan choreography.

Sedangkan sebagai nature dari aplikasi, aplikasi ini memiliki prinsip:

  • All-in-one => Semua layanan PPSDM Migas disediakan melalui 1 interface.
  • Volatile => Mengakomodir untuk setiap beda kepengurusan pimpinan bisa saja sistem yang mengurus suatu bidang berubah, semua hak akses yang ada di aplikasi ini sangat dinamis dan bisa diatur melalui interface.
  • Dynamic => Semua data yang digunakan di website diharapkan user bisa mengeditnya secara langsung, tidak fixed/hardcoded.
  • Clarity => Karena pelanggan PPSDM Migas mayoritas adalah gen x. Semua alur dan birokrasi meski di dalamnya ribet, yang ditampilkan ke pelanggan adalah semudah mungkin.
  • Simplicity => Beberapa step yang pada dasarnya bisa dikomputasi, langsung bisa diolah secara langsung tanpa perlu campur tangan aktor.
  • Flexibility => Apabila ada layanan yang tidak dipakai, admin bisa menonaktifkan layanan tersebut secara langsung dari interface.
  • Modifiable => Dengan cepat dan randomnya permintaan user, sistem diharapkan terdokumentasi dengan mudah dan jelas sehingga tidak mempengaruhi data yang sedang berjalan.

Daftar Project

Setiap nama project, pasti memiliki pola seperti berikut sa-xx-yyyyy. Pola tersebut memiliki arti:

  • sa => Sebagai prefix agar project SuperApp terorganisir berada di 1 blok yang sama.
  • xx => Merupakan jenis project. Jenis project adalah sebagai berikut:
    • gw => Monolith FrontEnd yang sekaligus digunakan sebagai Gateway,
    • be => Backend yang bertindak sebagai API Server,
    • dc => Dokumentasi, seperti website ini sendiri,
    • cf => Konfigurasi,
  • yyyy => Nama dari project tersebut, biasanya sudah sesuai tujuan servicenya.

Setiap project memiliki nomor kode, nomor kode tersebut digunakan sebagai port forwarding Docker. (Lihat penjelasan disini)

Nama RepositoryProject CodeKodeDeskripsi
sa-cf-environment00Docker compose yang bisa digunakan untuk semua project
sa-gw-adminGWA01Interface admin/pengguna internal. Sekaligus tempat pengelolaan auth dan organisasi
sa-gw-customerGWC02Interface pelanggan/pengguna eksternal. Sama juga pengelolaan auth
sa-be-penerimaanPNR03Pioner service yang lainnya karena mengelola apa yang dijual sekaligus tarifnya dan menyimpan transaksi
sa-be-tandatanganTTG04Menyimpan data verifikasi tanda tangan elektronik
sa-be-tamuBTM05Pencatatan tamu PPSDM Migas
sa-be-sertifikasiSRF06Mengelola pelaksanaan sertifikasi
sa-be-pelatihanPLT07Mengelola pelaksanaan pelatihan
sa-be-wismaWSM08Mengelola penyewaan wisma
sa-be-fasilitasFSL09Mengelola penyewaan gedung dan tiket layanan
sa-be-pklPRK10Mengelola pelaksanaan Praktik Kerja Lapangan
sa-be-alumniALU11Mirip seperti sosial media sebagai sarana komunikasi dan publikasi PPSDM Migas terhadap alumninya
sa-fe-ujianFEX12Website ujian secure
sa-pc-examPUX13Aplikasi desktop untuk ujian secure
sa-ft-examMUX14Aplikasi mobile untuk ujian secure
sa-be-labLBK15Pengelola laboratorium
sa-ft-dashboardDEX16Aplikasi Mobile dashboard eksekutif dan penanda tangan
sa-be-lmsLRN17Learning Management System

FYI

Daftar project diatas masih bisa berubah sesuai kondisi permintaan.

Cloning Project

  1. Silahkan masuk ke GitHub untuk mendapatkan path clone yang diinginkan.
  2. Setelah masuk jalankan composer install untuk mengunduh library PHP.
    • Apabila anda menggunakan Laravel Sail, nantinya dalam menjalankan perintah pastikan sesuai dengan guideline berikut.
  3. Apabila di README.md terdapat tulisan Tipe Project adalah Front-End, jalankan perintah npm ci (Jangan npm i/npm install/npm update!) untuk mengunduh library JavaScript. Disini kami menggunakan npm.
  4. Jalankan perintah php artisan bpm:env untuk membuat file .env di root project ini.
    • Apabila anda menggunakan local, maka akan terpecah menjadi 2 opsi untuk memilih pendekatan pengecekkan service tools.
    • Apabila anda memilih semua local, maka pastikan semua atribut pada .env sudah diarahkan dengan benar ke setiap alat pengembangan.
  5. Jalankan perintah php artisan storage:link untuk membuat asset yang ada di storage bisa diakses oleh website.
  6. Jalankan perintah php artisan migrate --seed untuk menjalankan migration dan seeder. Akun default adalah admin@test.com dengan password password.
  7. Untuk mengakses interface website Front-End, jalankan npm run dev terlebih dahulu karena semua component kami sediakan sebagai SSR (Server Side Rendering) dengan Client Hydration.
  8. Selamat mengeksplorasi 😃

Custom Artisan Command

Kami disini membuat beberapa custom perintah artisan yang kami gunakan untuk mempermudah pekerjaan anda. Semua command artisan yang kami buat pasti diawali dengan bpm sehingga apabila anda mencari perintah tersebut dengan php artisan list maka akan muncul grup bpm. Berikut beberapa perintah yang kami buat:

bpm:env

Digunakan untuk menyalin/menimpa file .env dari Project. Di setiap project terdapat 2 file .env.example sesuai dengan anda ingin menggunakan development environment yang mana. Command ini sekaligus akan melakukan konfigurasi tentang port sesuai pilihan anda ingin menggunakan Shared environment atau sesuai dengan sealed environment Docker maupun local OS environment.

bpm:keygen Tidak digunakan lagi

Digunakan untuk membuat API key untuk project tersebut. API key akan disimpan dalam file .env, jadi apabila tidak ada file .env maka perintah akan gagal dijalankan.

bpm:store-key Tidak digunakan lagi

Digunakan untuk menyimpan API key dari service lain. Setelah anda menjalankan php artisan bpm:keygen di project lain, untuk menyimpan API key tersebut di client service bisa menggunakan perintah ini.

Hak Cipta

Semua tentang aplikasi baik itu konsep, asset, data, informasi, maupun file adalah hak kekayaan intelektual PPSDM Migas.

Pihak luar tidak diperkenankan mengambil maupun menyebarluaskan data tersebut.