SkyVision adalah sistem berbasis web terintegrasi untuk monitoring dan prediksi cuaca yang memanfaatkan data meteorologi serta analisis berbasis machine learning. Sistem ini dirancang untuk memberikan informasi cuaca yang akurat, real-time, dan mudah diakses sebagai Early Warning System.
- 🌍 Manajemen data kota (cities)
- 🌦️ Penyimpanan dan monitoring data cuaca (weather data) secara real-time
- 🤖 Prediksi cuaca 24 jam ke depan menggunakan model Machine Learning (LSTM & Prophet)
- 🔔 Notifikasi peringatan dini (early warning) berbasis kondisi cuaca
⚠️ Pengaturan ambang batas risiko (risk thresholds) kustom- 📊 Dashboard monitoring interaktif dan dinamis
Backend (REST API):
- Laravel 12
- PostgreSQL (Supabase)
Frontend (Dashboard):
- Next.js 16 (React)
- Tailwind CSS & Shadcn UI
Machine Learning Service:
- Python (FastAPI)
- TensorFlow / Keras (LSTM Model)
- Prophet (Time Series Forecasting)
Sistem ini memiliki arsitektur microservices dan terdiri dari 3 layanan utama yang harus dijalankan: Backend, Frontend, dan ML Service.
git clone https://github.com/username/skyvision.git
cd skyvisioncd backend
composer install
cp .env.example .env
php artisan key:generateKonfigurasi koneksi database (Supabase) di file .env:
DB_CONNECTION=pgsql
DB_HOST=your-supabase-host
DB_PORT=5432
DB_DATABASE=postgres
DB_USERNAME=your-username
DB_PASSWORD=your-passwordJalankan migrasi database dan server backend:
php artisan migrate
php artisan serve(Buka tab terminal baru untuk langkah selanjutnya)
cd ../ml-service
python -m venv venv
# Aktivasi virtual environment (Windows):
venv\Scripts\activate
# Aktivasi virtual environment (Mac/Linux):
source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --port 5000 --reload(Buka tab terminal baru untuk langkah selanjutnya)
cd ../frontend
npm install
npm run devAplikasi Dashboard SkyVision sekarang dapat diakses melalui browser di http://localhost:3000.
cities→ Data lokasi/kota yang dimonitorweather_data→ Riwayat data cuaca aktualpredictions→ Hasil prediksi cuaca dari model Machine Learningsubscriptions→ Langganan notifikasi penggunarisk_thresholds→ Konfigurasi ambang batas penentuan risiko cuaca (extreme/high)notifications→ Riwayat notifikasi sistem peringatan dini
Saat ini, aplikasi SkyVision mengambil data cuaca secara real-time menggunakan Open-Meteo API untuk menjamin stabilitas endpoint publik, meskipun arsitekturnya (seperti pada kelas BMKGService) sudah didesain agar kompatibel dengan data Badan Meteorologi, Klimatologi, dan Geofisika (BMKG).
➡️ Atribusi / Attribution Wajib:
- Open-Meteo API sebagai sumber penyedia data cuaca aktual dan historis.
- Apabila di kemudian hari menggunakan kembali API publik BMKG, maka wajib mencantumkan BMKG (Badan Meteorologi, Klimatologi, dan Geofisika) pada dashboard / aplikasi sebagai sumber data resmi.
- Pastikan Scheduler Laravel (
php artisan schedule:work) berjalan di background agar tugas pengambilan data cuaca rutin dan eksekusi otomatis model ML (cron job) dapat berjalan sesuai interval yang ditentukan (1 jam / 6 jam). - Gunakan perintah
php artisan migrate:freshdengan sangat hati-hati (hanya saat proses development), karena akan menghapus seluruh data pada tabel. - Gunakan standar penulisan commit (Conventional Commits) jika ingin berkontribusi.
Pull request sangat dipersilakan. Untuk perubahan skala besar atau penambahan fitur yang signifikan, silakan buka Issues dan diskusikan terlebih dahulu dengan author.
Project ini dibuat dan digunakan untuk keperluan:
- Skripsi / Tugas Akhir
- Pembelajaran dan Riset Akademik
- Pengembangan purwarupa Sistem Informasi & Early Warning System Cuaca
Muhammad Lazuardi Al-Farisi
Informatika – Universitas Sebelas April