Back to Projects

Gis Application

Sebuah aplikasi GIS yang dibangun menggunakan React.js, Leaflet.js, dan Golang untuk menampilkan data geografis secara interaktif pada peta web. Proyek ini juga dilengkapi dengan pipeline CI otomatis menggunakan GitHub Actions untuk pengujian, pembangunan, dan pengiriman gambar kontainer ke GitHub Container Registry.

Gis Application
0 views
2 min read

Project Overview

GIS Application adalah sebuah aplikasi Geographic Information System (GIS) berbasis web yang dibangun menggunakan React.js (TypeScript) di sisi frontend dan Golang di sisi backend. Aplikasi ini menampilkan data geografis secara interaktif melalui peta berbasis web dengan integrasi OpenStreetMap menggunakan Leaflet.js.

Project ini dikembangkan sebagai latihan implementasi full-stack web application, mulai dari pembuatan RESTful API, konsumsi API di frontend, hingga penerapan automation CI/CD pipeline yang merupakan hasil improvement dan eksplorasi mandiri di luar materi course.


Latar Belakang & Motivasi

Project ini berawal dari keinginan saya untuk mempelajari pembuatan RESTful API menggunakan Golang serta bagaimana cara mengonsumsinya di frontend modern berbasis React + TypeScript.

Sebagai dasar pembelajaran, saya mengikuti sebuah course dari santrikoding.com yang membahas pengembangan aplikasi GIS. Namun, saya tidak berhenti pada materi yang disediakan. Project ini saya lanjutkan dengan:

  • Mengeksplorasi implementasi yang lebih mendekati kebutuhan dunia kerja
  • Melakukan improvement mandiri pada arsitektur dan workflow
  • Menerapkan automasi yang tidak dibahas di dalam course, seperti CI/CD

Arsitektur Project

Project ini dipisahkan menjadi dua repository terpisah untuk menerapkan prinsip separation of concerns dan mendekati arsitektur aplikasi nyata.

Backend (Golang – RESTful API)

Backend dibangun menggunakan Golang dan berfungsi sebagai penyedia data geografis melalui RESTful API.

Tanggung jawab utama backend meliputi:

  • Menyediakan endpoint API untuk data GIS
  • Mengelola dan memproses data koordinat geografis
  • Menjadi latihan praktis dalam membangun API menggunakan Golang

Repository backend:
github.com/armandwipangestu/gis-api

Frontend (React + TypeScript)

Frontend dibangun menggunakan React.js dengan TypeScript dan berfungsi sebagai antarmuka utama pengguna.

Tanggung jawab utama frontend meliputi:

  • Menampilkan peta interaktif berbasis web
  • Mengintegrasikan OpenStreetMap menggunakan Leaflet.js
  • Mengonsumsi API backend secara terstruktur dan reusable

Repository frontend:
github.com/armandwipangestu/gis-ui


Problem Statement

Melalui project ini, saya ingin memahami:

  • Bagaimana cara membangun RESTful API menggunakan Golang
  • Bagaimana cara mengonsumsi API tersebut di React menggunakan TypeScript
  • Bagaimana membuat reusable data-fetching logic di frontend
  • Bagaimana mengintegrasikan data geografis ke dalam peta berbasis web
  • Bagaimana menerapkan CI/CD automation sebagai bagian dari improvement pengembangan

Pendekatan Solusi

Untuk menjawab kebutuhan tersebut, saya menerapkan beberapa pendekatan berikut:

1. Backend API Development

  • Membangun RESTful API menggunakan Golang
  • Menyusun struktur project backend agar mudah dikembangkan
  • Menyediakan endpoint yang siap dikonsumsi frontend

2. Frontend Data Fetching & State Management

  • Menggunakan TanStack Query (React Query) untuk:
    • Data fetching
    • Caching
    • Pengelolaan state asynchronous
  • Membuat custom reusable hooks agar logic fetching dapat digunakan kembali

3. GIS & Web Mapping

  • Integrasi OpenStreetMap
  • Visualisasi data lokasi pada peta
  • Interaksi peta menggunakan Leaflet.js (marker, zoom, dan navigasi)

4. Automation & CI/CD Pipeline (Improvement)

  • Menerapkan CI/CD pipeline menggunakan GitHub Actions
  • Automasi proses:
    • Build aplikasi
    • Pembuatan container image
    • Push image ke GitHub Container Registry
  • Improvement ini dilakukan sebagai eksplorasi mandiri dan tidak termasuk dalam materi course

What I Learned

Dari project ini, saya memperoleh pembelajaran praktikal, antara lain:

  • Dasar-dasar pengembangan RESTful API dengan Golang
  • Konsumsi API di React menggunakan TypeScript secara terstruktur
  • Penerapan reusable hooks dengan TanStack Query
  • Pemahaman dasar GIS dan web-based mapping
  • Implementasi CI/CD pipeline sebagai improvement mandiri
  • Pentingnya inisiatif eksplorasi di luar materi pembelajaran

Mengapa Project Ini Penting

Walaupun project ini berangkat dari sebuah course, saya menjadikannya sebagai media eksplorasi teknis, bukan sekadar mengikuti tutorial.

Project ini penting karena:

  • Menunjukkan inisiatif pengembangan mandiri
  • Menggabungkan backend, frontend, dan automation workflow
  • Memberikan pengalaman membangun aplikasi full-stack secara end-to-end

Kesimpulan

GIS Application merupakan project pembelajaran yang membantu saya memahami proses pengembangan aplikasi GIS berbasis web secara menyeluruh, mulai dari RESTful API di Golang, konsumsi API di React + TypeScript, hingga penerapan CI/CD automation sebagai hasil improvement pribadi.

Project ini memperkuat kemampuan saya di bidang Software Engineering, khususnya dalam pengembangan full-stack web application dengan pendekatan modern.

More or Related Projects

Beasiswa
June 14, 2023

Beasiswa

Sistem manajemen beasiswa berbasis web untuk mengelola pengajuan, seleksi penerima, dan laporan.

0000
Tools:
+5
BuildWithAngga Backend
November 30, 2024

BuildWithAngga Backend

Sistem backend berbasis Laravel untuk platform edukasi, menampilkan fitur saved articles, clean architecture, dan praktik testing yang komprehensif.

00
Tools:
+5
E-Perpus Solo
November 29, 2023

E-Perpus Solo

Sebuah aplikasi sistem manajemen perpustakaan open source dengan framework CodeIgniter versi 3.1.13

0000
Tools:
+10