RestfulApi Backend for Risa Aplication Pelindo III using Golang (Fiber) and MongoDB.
Source Code Front-End menggunakan Flutter bisa diakses di Risa Flutter
- riwayat pemeliharaan
- penarikan laporan
- data inventaris alat
- stok manajemen
- monitoring speed test, cctv
- checklist pengecekan harian
- checklist maintenance cctv oleh vendor
- tugas perbaikan / kemajuan
- notifikasi perangkat bermasalah
- ErruUtils
Library ini digunakan untuk memformat response error dan logger sehingga response error memiliki format yang standart di setiap service (berguna jika akan mengimplementasikan microservice).
- Go Fiber Framework : Web framework golang yang memiliki kemiripan dengan express js dan menggunakan fast-http (tidak berbeda jauh dengan gin dan echo).
- Mongo go driver : Saat ini service ini full menggunakan MongoDB.
- JWT go
- Ozzo validation : Library yang digunakan untuk validasi request body dari user.
- Go Cron : Scheduller
- Maroto : Framework pembuatan PDF
- Firebase : Notifikasi realtime ke Android
gen_unit
domain.gen_unit
digunakan untuk meng-collect semua perangkat dengan hanya menyimpan data umumnya saja dan meninggalkan data detil.gen_unit
dibuat karena ada permintaan dari client agar semua perangkat dapat dicari menggunakan satu buah kolom pencarian tanpa harus memilih kategori. Semakin banyak data akan semakin lambat sehingga kedepan akan diganti menggunakan database elasticsearch. domain ini tidak bersentuhan secara langsung dengan user dari segi inputan. updatenya akan dilakukan dibelakang layar berdasarkan : pembuatan perangkat pada kategori apapun, pengeditan jika nama, ip , category, cabang berubah. dan penghapusan. serta ada update pada history/incident.gen_unit
juga memuat data ping alamat ip kghusus perangkat yang memiliki ip address.history
digunakan untuk mencatat semua riwayat perangkat, riwayat ini memiliki status info (0), progress (1), persetujuan pending (2), pending (3), complete (4). Setiap penambahanhistory
yang belum komplit akan mengupdate fieldcases
pada domaingen_unit
dan jikahistory
diubah statusnya menjadi complete maka case digen_unit
akan dikurangi.history
memilikihistory
lagi didalamnya untuk keperluan tracking perubahan dan pembuatan laporan berdasarkan range waktu tertentu.cctv
,computer
,application
dll yang serupa memuat data inventaris.check
menggenerate daftar tempat atau perangkat yang harus di cek dengan menyesuaikan waktu shifts realtime.check item
yang ditandai have problem juga akan di munculkan pada saat pembuatan check berikutnya.check item
sebagai template item yang mana saja yang mau di cek. didalamnya ada slice shift untuk dimunculkan saatcheck
dibuat.checklist_cctv
membuat ceklist maintenance harian atau bulanan cctv oleh vendor cctvstock
menyimpan stock sebagai satu buah dokumen saja , pemakaian dan penambahan stok dijadikan sebagai child didalam dokumen dan setiap perubahannya akan mempengaruhi field QTY pada stock.scheduller
setiap satu jam sistem akan memeriksa cctv yang status pingnya down. status ping didapatkan dari inputan aplikasi lain bernama pingers. hasil pemeriksaan dikirimkan ke user menggunakanfirebase
- Handler digunakan untuk mengekstrak inputan dari user. params, query, json body, claims dari jwt serta validasi input ,termasuk memastikan dan menimpa huruf besar atau kecil.
- Service digunakan untuk bisnis logic, menggabungkan dua atau lebih dao atau utilitas pembantu lainnya, mengisi data yang dibutuhkan dao misalnya saat perpindahan dari requestData (data sedikit) ke Data (data banyak). termasuk merubah string menjadi ObjectID dan Pengecekan IP address.
- Dao berkomunikasi langsung ke database. Beberapa kasus juga memastikan inputan huruf besar dan kecil pada inputan database yang caseSensitif untuk memaksimalkan indexing, memastikan nilai yang di input array apabila array nil.
- Api (folder client) merupakan aplikasi pihak luar. aplikasi bisa berkomunikasi dengan api pihak luar menggunakan rest api.