- SIMIG - Sistem Informasi dan Mitigasi Bencana
- Deskripsi Sistem Informasi dan Mitigasi Bencana
- Fitur yang tersedia
- Struktur Project
- Panduan Instalasi
- Dokumentasi
- Contoh Penggunaan
- Halaman Utama
SIMIG - Sistem Informasi dan Mitigasi Bencana merupakan sistem API yang berisi informasi seputar bencana yang sedang terjadi, pernah terjadi, dan dilengkapi dengan fitur pelaporan bencana dimana pengguna dapat melakukan pelaporan bencana yang terjadi didaerah nya. Selain itu pada sistem ini juga dilengkapi dengan fitur berita yang akan memberikan informasi bencana tersebut secara lengkap yang mana informasi dan berita yang disampaikan dalam situs ini akan dilakukan verifikasi terlebih dahulu sebelum akhirnya dipublish, untuk memastikan bahwa berita serta informasi tersebut merupakan informasi yang benar sesuai dengan fakta yang ada dilapangan.
Terdapat beberapa fitur yang tersedia seperti sebagai berikut
- Mitigasi Bencana
- Data Bencana yang sedang terjadi
- Perbarui Data Bencana
- History Bencana
- Laporkan Bencana
- Lapor Bencana
- Data Pelapor
- Informasi Bencana
- Informasi Bencana
- Informasi Bencana dengan Kode Berita
- Perbarui Berita Bencana
- Tulis Berita Bencana
- Hapus Informasi Bencana
Struktur folder yang digunakan dalam project ini adalah sebagai berikut:
├── assets
├── cmd
├── config
│ ├── config.go
│ └── config.json
├── controllers
│ ├── bencana.go
│ ├── berita.go
│ ├── login.go
│ ├── pelapor.go
│ └── users.go
├── db
│ └── db.go
├── docs
│ ├── docs.go
│ ├── swagger.json
│ └── swagger.yaml
├── dokumentasi
├── helpers
│ ├── pwd_helper.go
│ └── TemplateRegistry.go
├── middlewares
│ ├── CustomContext.go
│ └── middlewares.go
├── models
│ ├── bencana_m.go
│ ├── berita_m.go
│ ├── documentation.go
│ ├── login_m.go
│ ├── pelapor_m.go
│ └── response.go
├── routes
│ └── routes.go
├── vendor
├── views
│ ├── alerts.html
│ ├── beranda.html
│ ├── dashboard.html
│ ├── documentation.html
│ ├── footer.html
│ ├── header.html
│ ├── login.html
│ └── register.html
└── Readme.md
Pada struktur folder dari project ini menggunakan konsep MVC (Models, Views, dan Controller) yaitu dengan memisahkan antara Models yang digunakan untuk menghubungkan sistem dengan database, kemudian controllers digunakan untuk logika pada sistem dan views yang berisi mengenai tampilan depan dari website ini. Dimana selanjutnya terdapat folder middlewares yang berisi middlewares yang digunakan dalam project ini, docs berisi file documentasi dari project dan helpers berisi fungsi untuk melakukan hashing password serta renders template.
Langkah awal sebelum menggunakan project adalah melakukan instalasi yaitu sebagai berikut.
- Download dan install Golang.
- Buka folder $GOPATH /src/github.com/
- Pada folder tersebut dapatkan source code dari repository dengan mengetikkan perintah berikut pada terminal.
Atau bisa menggunakan perintah berikut.
git clone https://github.com/rizwijaya/SIMIG-SistemMitigasiAPI.git
go get -u https://github.com/rizwijaya/SIMIG-SistemMitigasiAPI
Download dependensi package yang digunakan dengan menggunakan depedency manager.
dep ensure
Apabila tidak memiliki depedency manager bisa menggunakan perintah dari golang.
- Lacak dependensi pada project.
go mod init
- Selanjutnya download dependensi dengan perintah berikut.
go mod tidy
- Build project menggunakan perintah berikut.
go build
- Langkah pertama dalam konfigurasi database adalah buat database baru.
- Selanjutnya import database dari project, pada project ini database terletak di folder database/mitigasi.sql.
- Konfigurasikan database pada website, buka file config.json yang terletak pada folder config.
- Pada file config.json lakukan konfigurasi sesuai dengan database dan host yang digunakan yaitu sebagai berikut.
{ "DB_USERNAME" : "Username database yang digunakan", "DB_PASSWORD" : "Password database yang digunakan", "DB_PORT" : "Port dari database", "DB_HOST" : "Host dari database", "DB_NAME" : "Nama dari database" }
- Simpan Konfigurasi tersebut.
Setelah selesai melakukan instalasi dan konfigurasi file serta database selanjutnya jalankan web server pada folder project menggunakan perintah.
go run main.go
Buka browser dan masukkan alamat sebagai berikut.
https://localhost:8080/
Apabila terdapat error depedensi atau package hilang saat menjalankan aplikasi website maka download dependensi yang hilang tersebut, berikut daftar dependensi package yang digunakan.
github.com/Masterminds/goutils
github.com/Masterminds/semver
github.com/Masterminds/sprig
github.com/alecthomas/template
github.com/cpuguy83/go-md2man/v2
github.com/dgrijalva/jwt-go
github.com/go-openapi/spec
github.com/go-openapi/swag
github.com/go-sql-driver/mysql
github.com/google/uuid
github.com/gookit/validate
github.com/gorilla/sessions
github.com/huandu/xstrings
github.com/imdario/mergo
github.com/labstack/echo-contrib
github.com/labstack/echo/v4
github.com/mailru/easyjson
github.com/mitchellh/copystructure
github.com/russross/blackfriday/v2
github.com/stretchr/testify
github.com/swaggo/echo-swagger
github.com/swaggo/swag
github.com/tkanos/gonfig
github.com/urfave/cli/v2
golang.org/x/crypto
golang.org/x/tools
Untuk mendownload dependensi dapat menggunakan perintah go get
atau menggunakan dependency manager. Dengan contoh sebagai berikut.
go get <Nama Package>
Dependency Manager
dep ensure -add <Nama Package>
Contoh Penggunaan API website secara realtime dapat diakses pada dokumentasi website atau akses pada url berikut SIMIG - Sistem Informasi dan Mitigasi Bencana.