Sebuah proyek dari tim Grasshopper, Grass-Way adalah REST API berbasis Node.js + Express yang dirancang untuk memonitor dan memprediksi pertumbuhan rumput di berbagai segmen lahan. Sistem ini mengintegrasikan data tanah, cuaca dari BMKG, dan model pertumbuhan untuk memberikan estimasi ketinggian rumput yang akurat.
Selain API, proyek ini juga menyediakan antarmuka web sederhana untuk visualisasi data segmen.
- 🌾 Manajemen Segmen: Kelola informasi detail untuk setiap segmen, termasuk data komposisi tanah dan jenis rumput.
- 🌦️ Integrasi Cuaca BMKG: Mengambil prakiraan cuaca secara otomatis dari API publik BMKG dan menyimpannya ke database.
- 📏 Prediksi Pertumbuhan Rumput: Menjalankan kalkulasi untuk memperbarui dan memprediksi ketinggian rumput di semua segmen berdasarkan data cuaca dan karakteristik segmen.
- ☁️ Cloud-Ready: Didesain untuk berjalan dengan database terkelola seperti Aiven for MySQL, lengkap dengan konfigurasi SSL.
- 🏗️ Arsitektur Modular: Struktur kode yang rapi (Controllers, Models, Routes, Services) untuk skalabilitas dan kemudahan pemeliharaan.
- Backend: Node.js, Express.js
- Database: Aiven for MySQL (atau MySQL standar)
- Template Engine: EJS (untuk antarmuka web sederhana)
- HTTP Client: Axios
- Manajemen Environment: dotenv
controllers/: Berisi logika bisnis yang menangani permintaan dan menghasilkan respons.models/: Bertanggung jawab untuk semua interaksi dengan database (CRUD).routes/: Mendefinisikan rute API dan antarmuka web, menghubungkannya ke controller yang sesuai.services/: Fungsi utilitas, seperti koneksi ke API BMKG dan kalkulasi pertumbuhan.views/: Berisi file EJS untuk merender halaman web.
-
Clone Repositori
git clone https://github.com/hks910/grassway cd grass-way -
Instal Dependensi
npm install
-
Konfigurasi Variabel Lingkungan Buat file
.envdi direktori utama dan isi dengan konfigurasi Anda.Contoh untuk Aiven for MySQL:
DB_HOST= mysql-f245633-hardikusuma999-bb49.f.aivencloud.com DB_USER= yavnadmin DB_PASSWORD= <Mohon Email ke hardikusuma999@gmail.com/ whatsApp 082111156935> DB_NAME=grassway
-
Jalankan Aplikasi
- Mode Pengembangan (dengan
nodemon):npm run dev
- Mode Produksi:
npm start
Aplikasi Anda sekarang berjalan di
http://localhost:3000. - Mode Pengembangan (dengan
Berikut adalah endpoint utama yang tersedia untuk interaksi dengan sistem Grass-Way.
Mengambil daftar semua segmen yang terdaftar di sistem.
- Endpoint:
GET /api/segments - Contoh Request (cURL):
curl http://localhost:3000/api/segments
Mengambil data komposisi tanah dan jenis rumput untuk segmen spesifik.
- Endpoint:
GET /api/segments/:segmentId/soil-grass - Contoh Request (cURL):
curl http://localhost:3000/api/segments/1/soil-grass
Mengambil data cuaca terakhir yang tersimpan untuk segmen spesifik.
- Endpoint:
GET /api/segments/:segmentId/weather - Contoh Request (cURL):
curl http://localhost:3000/api/segments/1/weather
Memicu proses untuk mengambil data cuaca terbaru dari BMKG untuk semua segmen dan menyimpannya.
- Endpoint:
POST /api/weather - Body: (Tidak ada)
- Contoh Request (cURL):
curl -X POST http://localhost:3000/api/weather
Memicu proses kalkulasi untuk memperbarui estimasi ketinggian rumput di semua segmen.
- Endpoint:
POST /api/segment/height - Body: (Tidak ada)
- Contoh Request (cURL):
curl -X POST http://localhost:3000/api/segment/height
Proyek ini dilisensikan di bawah Lisensi MIT.

