Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SIGAP Pangan (Sistem Informasi dan Peringatan Rantai Pasok Pangan)

SIGAP Pangan adalah platform web intelligence yang mampu mengumpulkan data dari berbagai sumber, mengolahnya menjadi insight prediktif, menghitung risiko rantai pasok per wilayah, dan menyajikannya dalam bentuk dasbor interaktif, peta risiko, alert, serta rekomendasi intervensi.

Arsitektur & Teknologi (Stack)

  • Frontend: Next.js (TypeScript)
  • Backend: NestJS (TypeScript)
  • Database & Auth: Supabase (PostgreSQL)
  • AI Service / Data Pipeline: Python (XGBoost, Prophet) yang di-deploy/diintegrasikan menggunakan Microsoft Azure
  • Peta & Visualisasi Geospatial: Azure Maps (Fitur Microsoft Azure)
  • Deployment & Scheduler: Azure Functions / Cron Worker

Struktur Proyek

SIGAP-Pangan/
├── frontend/               # Aplikasi web Frontend menggunakan Next.js
├── backend/                # API Backend menggunakan NestJS
├── ai-service/             # Service Python AI & Machine Learning
│   ├── notebooks/          # Jupyter notebooks untuk eksplorasi data & eksperimen
│   ├── pipelines/          # Pipeline ingestion, preprocessing, & training
│   └── services/           # Script untuk inference harian & risk scoring
├── supabase/               # Konfigurasi Supabase (skema DB & migrasi)
│   └── migrations/         # File SQL untuk skema database (commodities, regions, dll)
└── README.md               # Dokumentasi utama proyek

Alur Sistem (System Flow)

Sistem ini bekerja dari pengambilan data (hulu) hingga visualisasi kepada pengguna (hilir) dengan alur sebagai berikut:

1. Alur Ingestion Data

  • Proses: Scheduler (menggunakan Azure Functions) berjalan setiap hari (pagi & sore) untuk mengambil data eksternal.
  • Sumber Data:
    • PIHPS BI (harga pangan harian)
    • BMKG API (prakiraan cuaca)
    • Bapanas / Satu Data (indikator ketersediaan/stok)
  • Output: Data mentah disimpan ke dalam database (tabel staging).

2. Alur Preprocessing & Integrasi Data

  • Proses: Membersihkan data mentah, menyamakan format tanggal/wilayah, menangani missing value, dan menyatukan data ke dalam satu tabel analitik (analytical table).
  • Feature Engineering: Membuat fitur tambahan seperti pergerakan moving average, volatilitas, lag harga, dll.

3. Alur Training Model (Terjadwal)

  • Proses: Melatih model AI secara berkala dan terjadwal (memisahkan training dari inference agar web tidak berat).
  • Model: Baseline (Prophet) dan Model Fitur Gabungan (XGBoost).
  • Output: Model terbaik disimpan ke penyimpanan (registry), beserta pencatatan metrik performa (MAE, RMSE, MAPE).

4. Alur Inference / Prediksi Harian

  • Proses: Berjalan setiap hari menggunakan model AI yang sudah dilatih pada data teraktual.
  • Output: Prediksi harga 3–7 hari ke depan per komoditas dan wilayah, lalu datanya disimpan ke dalam tabel forecast_results.

5. Alur Risk Scoring

  • Proses: Membaca hasil prediksi dan menghitung Risk Score (0-100) menggunakan formula gabungan dari fitur relevan, contoh komposisi:
    • Prediksi kenaikan harga (40%)
    • Volatilitas historis (25%)
    • Severity cuaca (20%)
    • Indikator ketersediaan pasokan (15%)
  • Output: Klasifikasi Level Risiko (Rendah, Sedang, Tinggi) dan penjelasan alert yang disimpan ke tabel risk_scores serta alerts.

6. Alur Backend Web

  • Proses: Layanan terpisah (NestJS) yang tidak memproses model AI langsung, namun menjembatani operasional UI dengan Database.
  • Output: Menangani autentikasi, penyaringan (filter), penyiapan JSON terstruktur untuk dasbor, endpoint peta, alert, dan detail wilayah.

7. Alur Frontend & Interaksi Pengguna (End-user Flow)

  • Halaman Utama / Landing Dashboard: Memberikan gambaran cepat mengenai jumlah komoditas dipantau, wilayah risiko tinggi, komoditas paling rawan, tren harga, serta heatmap.
  • Analisis Spesifik (Peta Risiko & Detail Komoditas): Pengguna menelusuri data dengan klik hover, peta interaktif per-wilayah (didukung fitur Azure Maps), maupun filter komoditas spesifik.
  • Alerts Center: Pengguna bisa melihat notifikasi kenaikan harga, membaca insight / alasan di balik tingginya indeks risiko, serta melihat usulan prioritas intervensi.

Rancangan Tabel Database (Supabase)

Tabel-tabel inti yang direkomendasikan untuk memfasilitasi operasional sistem di atas:

  • commodities: Daftar komoditas yang dipantau (kode, nama, satuan).
  • regions: Data titik pemantauan (provinsi, kabupaten/kota, latitude, longitude).
  • daily_prices: Histori harga pangan (source, price, komoditas).
  • weather_features: Data historis & perkiraan cuaca (curah hujan, temperatur).
  • supply_indicators: Indikator tambahan suplai/ketersediaan barang.
  • forecast_results: Proyeksi prediksi harga dari engine AI.
  • risk_scores: Nilai persentase risiko untuk masing-masing komoditas di wilayahnya.
  • alerts & recommendations: Rekaman peringatan aktif, status alert, skor keparahan (severity), dan aksi rekomendasi.

Dengan pemisahan layanan (Frontend, Backend Web, Service AI), pengembangan proyek diharapkan lebih scalable, modular, dan pembagian tugas dalam tim menjadi lebih jelas.

About

Innovation Project | AI-powered food supply monitoring, forecasting, risk mapping, and alert platform.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors