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_unitdomain.gen_unitdigunakan untuk meng-collect semua perangkat dengan hanya menyimpan data umumnya saja dan meninggalkan data detil.gen_unitdibuat 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_unitjuga memuat data ping alamat ip kghusus perangkat yang memiliki ip address.historydigunakan untuk mencatat semua riwayat perangkat, riwayat ini memiliki status info (0), progress (1), persetujuan pending (2), pending (3), complete (4). Setiap penambahanhistoryyang belum komplit akan mengupdate fieldcasespada domaingen_unitdan jikahistorydiubah statusnya menjadi complete maka case digen_unitakan dikurangi.historymemilikihistorylagi didalamnya untuk keperluan tracking perubahan dan pembuatan laporan berdasarkan range waktu tertentu.cctv,computer,applicationdll yang serupa memuat data inventaris.checkmenggenerate daftar tempat atau perangkat yang harus di cek dengan menyesuaikan waktu shifts realtime.check itemyang ditandai have problem juga akan di munculkan pada saat pembuatan check berikutnya.check itemsebagai template item yang mana saja yang mau di cek. didalamnya ada slice shift untuk dimunculkan saatcheckdibuat.checklist_cctvmembuat ceklist maintenance harian atau bulanan cctv oleh vendor cctvstockmenyimpan stock sebagai satu buah dokumen saja , pemakaian dan penambahan stok dijadikan sebagai child didalam dokumen dan setiap perubahannya akan mempengaruhi field QTY pada stock.schedullersetiap 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.