Halaman utama (/) sekarang menggunakan pola scrollytelling: narasi bergerak saat pengguna scroll, sementara peta tetap menempel di layar dan otomatis berubah mengikuti bab. Urutannya adalah Overview → Forest → Deforestasi 2023 → Planted 2025 → Citra Multitemporal → Mill & POD → Konteks Berita → Temuan Utama.
Fitur storytelling utama:
/overview tetap tersedia sebagai ringkasan analitik dan /map sebagai mode eksplorasi bebas.Project ini adalah dashboard story berbasis Flask + Bootstrap 5 + Leaflet + Chart.js untuk membaca data:
og:image dari sumber asli jika dapat diaksessingkawang_dashboard_story/
├── app.py
├── requirements.txt
├── README.md
├── templates/
│ ├── base.html
│ ├── overview.html
│ ├── map.html
│ └── 404.html
└── static/
├── css/style.css
├── js/overview.js
├── js/map.js
├── img/news-placeholder.svg
└── data/
├── stats.json
├── administrasi.geojson
├── forest.geojson
├── planted.geojson
├── deforestasi.geojson
├── mill_pod.geojson
├── jarak_mill_pod.geojson
└── buffer_50km.geojson
Download Python 3.11 atau lebih baru dari situs resmi Python. Saat instalasi, centang Add Python to PATH.
Cek melalui Command Prompt atau terminal VS Code:
python --version
Ekstrak ZIP, lalu buka folder singkawang_dashboard_story di VS Code.
Di VS Code pilih:
Terminal > New Terminal
python -m venv venv
Aktifkan pada PowerShell:
.\venv\Scripts\Activate.ps1
Jika memakai CMD:
venv\Scripts\activate.bat
Jika PowerShell menolak menjalankan script, gunakan CMD atau jalankan PowerShell sebagai user dan gunakan kebijakan yang sesuai dengan komputer Anda.
pip install -r requirements.txt
python app.py
Jika berhasil, terminal akan menampilkan alamat seperti:
http://127.0.0.1:5000
Buka alamat tersebut di browser.
http://127.0.0.1:5000/http://127.0.0.1:5000/mappython3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py
Halaman Overview menampilkan:
Pada halaman /map:
2015, 2020, 2023, 2025, atau Current untuk mengganti citra dengan cepat.Masukkan file baru ke:
static/data/
Kemudian ubah konfigurasi pada:
static/js/map.js
Cari variabel:
const layerConfig = { ... }
Contoh layer baru:
sungai: {
label: 'Sungai',
file: 'sungai.geojson',
color: '#1c77c3',
fill: '#1c77c3',
default: true
}
Jika struktur atribut layer berbeda, tambahkan popup-nya pada fungsi makeGeoLayer().
Edit BASEMAPS pada app.py.
Saat ini project berisi:
Google Satellite (Current)
Wayback 2015
Wayback 2020
Wayback 2023
Wayback 2025
Wayback menggunakan struktur tile Leaflet:
.../tile/<snapshot-id>/{z}/{y}/{x}
Daftar berita berada pada NEWS_ITEMS di app.py.
Aplikasi mencoba mengambil:
<meta property="og:image" ...>
serta deskripsi dari halaman sumber.
Jika situs tidak bisa diakses, memblokir request, atau sedang offline, dashboard memakai:
static/img/news-placeholder.svg
Untuk menambah berita:
{
"title": "Judul berita",
"source": "Nama media",
"date": "Tanggal",
"category": "Kategori",
"summary": "Ringkasan singkat",
"url": "https://alamat-artikel"
}
overview.html langsung dengan double-click. Jalankan melalui Flask dengan python app.py.python is not recognizedPython belum masuk PATH. Install ulang Python dan centang Add Python to PATH.
ModuleNotFoundError: No module named 'flask'Aktifkan venv, lalu:
pip install -r requirements.txt
Periksa koneksi internet dan buka Developer Tools (F12) untuk melihat error tile. Snapshot Wayback dapat berubah kebijakan aksesnya.
Pastikan file berada di static/data/ dan koordinatnya sudah WGS84 / EPSG:4326.
Sebagian media memblokir hotlink atau request otomatis. Dashboard akan memakai placeholder. Anda dapat menyimpan foto berita secara manual ke static/img/ dan mengganti sumber gambar jika diperlukan.
Project juga dilengkapi:
install_windows.bat → membuat venv dan menginstall dependency.run_windows.bat → mengaktifkan environment, membuka browser, dan menjalankan Flask.CARA_INSTALL_DAN_PENGGUNAAN.txt → panduan singkat Bahasa Indonesia.Untuk pengguna yang tidak ingin mengetik perintah satu per satu, cukup jalankan kedua file .bat tersebut secara berurutan.
static/img/field/.Story sekarang memiliki bab Temuan Lapangan dengan auto play random.