Releases: ardie069/kalender-hijriyah
v4.2.1
Changelog
Semua perubahan penting pada proyek ini akan didokumentasikan di file ini.
Format changelog ini berdasarkan Keep a Changelog, dan proyek ini mengikuti Semantic Versioning.
[4.2.1] - 2026-03-30
🚀 Peningkatan & Refactor (Improved/Refactored)
- Optimasi dan penyederhanaan logika resolusi bulan Hijriyah (Hijri date resolution) untuk stabilitas yang lebih baik.
- Penambahan alias metode MABIMS pada layanan prediksi untuk kemudahan integrasi.
[4.2.0] - 2026-03-30
✨ Fitur Baru (Added)
- Penambahan API untuk mendapatkan informasi bulan Gregorian lengkap dalam satu tahun.
🚀 Peningkatan & Refactor (Improved/Refactored)
- Standarisasi kalkulasi Toposentris di seluruh modul astronomi untuk akurasi yang lebih konsisten.
- Peningkatan logika perhitungan waktu terbit/terbenam bulan (Moonrise/Moonset).
- Refactor logika resolusi bulan Hijriyah agar menggunakan fallback KHGT global jika metode lokal tidak tersedia.
- Sinkronisasi telemetri bulan dengan data referensi lokasi yang lebih akurat.
⚠️ Perubahan Masif (Breaking Changes)
- Penghapusan metode Wujudul Hilal dan TURKEY_2016 untuk standarisasi pada metode KHGT (Kalender Hijriyah Global Tunggal).
Full Changelog: v4.2.0...v4.2.1
v4.2.0
Changelog
Semua perubahan penting pada proyek ini akan didokumentasikan di file ini.
Format changelog ini berdasarkan Keep a Changelog, dan proyek ini mengikuti Semantic Versioning.
[4.2.0] - 2026-03-30
✨ Fitur Baru (Added)
- Penambahan API untuk mendapatkan informasi bulan Gregorian lengkap dalam satu tahun.
🚀 Peningkatan & Refactor (Improved/Refactored)
- Standarisasi kalkulasi Toposentris di seluruh modul astronomi untuk akurasi yang lebih konsisten.
- Peningkatan logika perhitungan waktu terbit/terbenam bulan (Moonrise/Moonset).
- Refactor logika resolusi bulan Hijriyah agar menggunakan fallback KHGT global jika metode lokal tidak tersedia.
- Sinkronisasi telemetri bulan dengan data referensi lokasi yang lebih akurat.
⚠️ Perubahan Masif (Breaking Changes)
- Penghapusan metode Wujudul Hilal dan TURKEY_2016 untuk standarisasi pada metode KHGT (Kalender Hijriyah Global Tunggal).
[4.1.0] - 2026-03-28
✨ Fitur Baru (Added)
- Mendukung telemetri spesifik Makkah untuk metode Umm al-Qura.
- Penambahan data telemetri bulan untuk lokasi referensi (Topocentric).
- Sinkronisasi data fase bulan dengan akurasi toposentris dalam API response.
🚀 Peningkatan & Refactor (Improved/Refactored)
- Perubahan kalkulasi perpanjangan (Elongation) dari koordinat Geosentris ke Toposentris untuk akurasi pengamat lokal yang lebih tinggi.
- Penentuan titik visibilitas hilal pada metode KHGT sekarang lebih deterministik.
- Pembersihan fungsi
evaluateGeocentricPointyang tidak lagi digunakan. - Optimasi struktur data telemetri bulan untuk konsistensi antar endpoint.
🐛 Perbaikan (Fixed)
- Perbaikan ambiguitas pemilihan titik visibilitas pada pemindaian global KHGT.
- Koreksi penamaan fase bulan agar sesuai dengan standar terminologi astronomi.
📚 Dokumentasi (Docs)
- Update terminologi KHGT pada
README.mdagar lebih jelas bagi pengguna baru. - Penambahan dokumentasi desain API (v4) dengan struktur response yang lebih detail.
- Klarifikasi kebutuhan parameter koordinat (
lat,lon) sebagai input wajib.
[4.0.0] - 2026-03-25
Rilis awal dengan integrasi NASA JPL SPICE Kernel.
v4.1.0
Changelog
Semua perubahan penting pada proyek ini akan didokumentasikan di file ini.
Format changelog ini berdasarkan Keep a Changelog, dan proyek ini mengikuti Semantic Versioning.
[4.1.0] - 2026-03-28
✨ Fitur Baru (Added)
- Mendukung telemetri spesifik Makkah untuk metode Umm al-Qura.
- Penambahan data telemetri bulan untuk lokasi referensi (Topocentric).
- Sinkronisasi data fase bulan dengan akurasi toposentris dalam API response.
🚀 Peningkatan & Refactor (Improved/Refactored)
- Perubahan kalkulasi perpanjangan (Elongation) dari koordinat Geosentris ke Toposentris untuk akurasi pengamat lokal yang lebih tinggi.
- Penentuan titik visibilitas hilal pada metode KHGT sekarang lebih deterministik.
- Pembersihan fungsi
evaluateGeocentricPointyang tidak lagi digunakan. - Optimasi struktur data telemetri bulan untuk konsistensi antar endpoint.
🐛 Perbaikan (Fixed)
- Perbaikan ambiguitas pemilihan titik visibilitas pada pemindaian global KHGT.
- Koreksi penamaan fase bulan agar sesuai dengan standar terminologi astronomi.
📚 Dokumentasi (Docs)
- Update terminologi KHGT pada
README.mdagar lebih jelas bagi pengguna baru. - Penambahan dokumentasi desain API (v4) dengan struktur response yang lebih detail.
- Klarifikasi kebutuhan parameter koordinat (
lat,lon) sebagai input wajib.
[4.0.0] - 2026-03-25
Rilis awal dengan integrasi NASA JPL SPICE Kernel.
Full Changelog: v4.0.0...v4.1.0
v4.0.0: Integration with NASA SPICE Toolkit
🚀 Release v4.0.0: Aerospace-Grade Precision
Integration with NASA SPICE Toolkit
proyek ini telah dirombak total dengan mengintegrasikan NASA SPICE (CSPICE) untuk mencapai tingkat presisi astronomi yang setara dengan sistem navigasi wahana antariksa.
🌟 Apa yang Baru?
1. NASA JPL SPICE Integration (DE440s)
Kami meninggalkan kalkulasi pendekatan tradisional dan beralih ke data ephemeris riil dari NASA. Menggunakan kernel de440s.bsp, posisi Matahari dan Bulan kini dihitung dengan akurasi sub-detik.
2. Multi-Method Hijri Engine
Sistem sekarang mendukung berbagai kriteria penetapan bulan baru secara simultan dalam satu API call:
| Metode | Deskripsi / Kriteria |
|---|---|
| KHGT | Kalender Hijriyah Global Tunggal (Kongres Turki 2016) dengan global visibility scan. |
| MABIMS (2022) | Implementasi kriteria terbaru: Altitude 3° dan Elongasi 6.4° (Toposentris). |
| Umm al-Qura | Standar resmi Arab Saudi (Makkah). |
| Wujudul Hilal | Penentuan berdasarkan posisi geometris di lokasi pengamat. |
3. High-Precision Bisection Search
Implementasi pencarian fajar (Fajr) dan terbenamnya matahari (Maghrib) menggunakan algoritma bisection 24 jam untuk memastikan transisi hari Hijriyah tetap akurat, terutama di wilayah lintang tinggi.
4. Koreksi Refraksi Atmosfer
Untuk kriteria berbasis toposentris, kami menerapkan model refraksi Bennett/Sæmundsson guna mensimulasikan penampakan hilal yang lebih realistis di ufuk.
🛠 Peningkatan Teknis
- Thread-Safe CGO Wrapper: Karena CSPICE tidak bersifat thread-safe, kami mengimplementasikan mekanisme
sync.Mutexglobal (spiceMu) untuk menjamin stabilitas di lingkungan high-concurrency. - API v4 Versioning: Penataan ulang endpoint pada
/api/v4/untuk konsistensi struktur data. - Dynamic Rollover Logic: Perbaikan logika penentuan umur bulan (29/30 hari) yang dievaluasi secara dinamis pasca-Maghrib.
- Docker Multi-stage Build: Optimasi deployment dengan linking library CSPICE secara otomatis.
📡 Endpoint API Utama
| Method | Endpoint | Fungsi |
|---|---|---|
GET |
/api/v4/hijri/date |
Konversi tanggal dengan komparasi multi-metode. |
GET |
/api/v4/prayer/times |
Jadwal shalat presisi tinggi. |
GET |
/api/v4/moon/telemetry |
Data posisi bulan (Alt, Az, Elongasi) real-time. |
⚠️ Batasan (Known Limitations)
Versi ini berfokus sepenuhnya pada akurasi matematis astronomis. Perhitungan tidak memperhitungkan kondisi cuaca lokal, hamburan cahaya (light pollution), atau ketebalan awan yang dapat memengaruhi pengamatan visual (rukyatul hilal) di lapangan.
⚙️ Cara Update
Jika Anda menggunakan Docker, jalankan perintah berikut:
# Menarik image terbaru
docker-compose pull
# Rebuild dan jalankan container
docker-compose up -d --buildKontributor: Dikembangkan dengan penuh ketelitian oleh @ardie069.
Full Changelog: v3.2.0...v4.0.0
v3.2.0 – The Monorepo Synthesis & UI Overhaul
🚀 Release v3.2.0 – The Monorepo Synthesis & UI Overhaul
🇮🇩 Ringkasan (ID)
Versi v3.2.0 menandai transformasi besar dari aplikasi standalone menjadi ekosistem Monorepo yang terintegrasi penuh di Vercel.
Perubahan Utama:
- Monorepo Migration: Menyatukan Next.js (Frontend) dan FastAPI (Backend) dalam satu repositori menggunakan pnpm workspaces.
- All-in Vercel Deployment: Deploy terpadu menggunakan Vercel Serverless Functions untuk Python, menghilangkan isu CORS dan latensi antar-platform.
- Modern UI/UX: Redesain total antarmuka menggunakan standar desain 2026—Soft-contrast, Glassmorphism tipis, dan Responsive Dashboard (Desktop Optimized).
- Lunar Analytics: Penambahan halaman Moon Info dengan visualisasi fase bulan dan data astronomi presisi (Skyfield API).
Sistem kini lebih cepat, lebih cantik, dan lebih stabil secara infrastruktur.
🇬🇧 Summary (EN)
Version v3.2.0 marks a major transformation from a standalone application into a fully integrated Monorepo ecosystem on Vercel.
Key Changes:
- Monorepo Migration: Unified Next.js (Frontend) and FastAPI (Backend) within a single repository using pnpm workspaces.
- All-in Vercel Deployment: Integrated deployment using Vercel Serverless Functions for Python, eliminating CORS issues and cross-platform latency.
- Modern UI/UX: Total interface redesign following 2026 design standards—Soft-contrast, subtle Glassmorphism, and Responsive Dashboard (Desktop Optimized).
- Lunar Analytics: Introduced Moon Info page with moon phase visualization and high-precision astronomical data (Skyfield API).
The system is now faster, more aesthetic, and infrastructure-wise more stable.
🔧 Technical Changes
✅ Monorepo Architecture: Implemented pnpm-workspace with shared packages.
✅ Vercel Serverless Integration: Unified routing via root vercel.json.
✅ Optimized Astronomy Engine: Skyfield now uses local de421.bsp (14MB) for zero-download cold starts.
✅ Desktop-First Design: Grid-based dashboard with row-spanning for better data visualization.
✅ Theme Engine Fix: Resolved hydration mismatches and improved light/dark mode transitions.
✅ Seamless Calendar Grid: Removed cluttering borders for a modern, airy calendar view.
🧠 Notes
"Waktu bukan sekadar angka, melainkan gerak materi di ruang angkasa."
V3.2.0 bukan hanya soal fitur, tapi soal membangun fondasi yang tepat (Monorepo) agar pengembangan di masa depan tidak terbentur masalah skalabilitas dan deployment.
Next: Update real-time astronomical alerts.
v3.1.0 – Hijri Day Boundary Fix & Rukyat Alignment
🚀 Release v3.1.0 – Hijri Day Boundary Fix & Rukyat Alignment
🇮🇩 Ringkasan (ID)
Versi v3.1.0 memperbaiki inkonsistensi pergantian hari Hijriyah antara metode Hisab dan Rukyat.
Sebelumnya:
- Hisab sudah berpindah tanggal saat Maghrib
- Rukyat masih berpindah tanggal di tengah malam (00:00)
Pada versi ini:
- Semua metode kini berpindah hari Hijriyah saat Maghrib
- Rukyat tetap lebih ketat secara evaluasi, tetapi tidak tertinggal secara kalender
- Seluruh unit test terkait batas waktu (Maghrib & tengah malam) lulus
Perubahan ini membuat kalender:
- lebih konsisten
- lebih realistis secara falak
- lebih sesuai praktik rukyat lapangan
🇬🇧 Summary (EN)
Version v3.1.0 fixes a critical Hijri day transition inconsistency between
Hisab and Rukyat methods.
Previously:
- Hisab switched Hijri days at sunset (Maghrib)
- Rukyat still switched at midnight
In this release:
- All methods now transition Hijri days at Maghrib
- Rukyat remains observationally stricter, but calendar-consistent
- All Maghrib and midnight boundary tests pass
This improves:
- calendar consistency
- astronomical correctness
- real-world rukyat alignment
🔧 Technical Changes
✅ Rukyat date resolution now uses real-time Julian Day
✅ Hijri day boundary unified at sunset
✅ No date jumps (29 → 1 → 2)
✅ No midnight-based Hijri transitions
✅ All boundary-related unit tests pass
🧠 Notes
This release focuses on correctness, not features.
UI and additional calendar views will follow after the backend logic stabilizes.
v3.0.0 – FastAPI & Astronomical Refactor
🚀 v3.0.0 — FastAPI & Astronomical Refactor
This release marks a major architectural and conceptual upgrade of the Hijri Calendar project.
The backend has been fully rewritten to ensure astronomical correctness, calendar consistency, and long-term maintainability.
🔥 Highlights (EN)
- ⚡ Backend migrated from Express.js to FastAPI (Python)
- 🌌 Astronomical calculations rebuilt using Skyfield + JPL DE421 ephemeris
- 🌙 Clear separation of Hijri methods:
- Global (Umm al-Qura–like baseline)
- Hisab (astronomical conjunction)
- Rukyat (hilal visibility / imkanur rukyat)
- 🌅 Hijri day transition occurs strictly at Maghrib
- ❌ Eliminated midnight date jumps and invalid transitions (e.g. 29 → 1 → 2)
- 🧠 Added explain endpoint for transparent calendar decisions
- 🔮 End-of-month prediction with hilal visibility criteria
- 🚦 Built-in rate limiting (SlowAPI)
🌐 Deployment (EN)
- Backend: Vercel (Serverless FastAPI)
- Frontend: Netlify (Vue 3 + TypeScript)
- Clean
/api/*proxy without hardcoded backend URLs in frontend
🧪 Reliability (EN)
- Unit tests covering:
- Maghrib boundary behavior
- Midnight transition consistency
- Hisab vs rukyat divergence
- No day-skipping edge cases
🛠️ Breaking Changes (EN)
- ❗ Node.js / Express backend removed
- ❗ JavaScript-based Hijri calculation logic removed
- API responses are now structured and typed
🇮🇩 Penjelasan Versi Bahasa Indonesia
Rilis ini merupakan perombakan besar pada arsitektur dan logika Kalender Hijriyah.
Backend ditulis ulang sepenuhnya untuk memastikan akurasi astronomi, konsistensi kalender, dan kejelasan logika penetapan tanggal.
✨ Fitur Utama (ID)
- ⚡ Backend berpindah dari Express.js ke FastAPI (Python)
- 🌌 Perhitungan falak berbasis Skyfield + ephemeris JPL DE421
- 🌙 Pemisahan metode penetapan Hijriyah secara tegas:
- Global (kalender baku mirip Umm al-Qura)
- Hisab (berdasarkan konjungsi)
- Rukyat (berdasarkan visibilitas hilal)
- 🌅 Pergantian hari Hijriyah terjadi saat Maghrib, bukan tengah malam
- ❌ Tidak ada loncatan tanggal tidak valid
- 🧠 Endpoint penjelasan keputusan kalender
- 🔮 Prediksi akhir bulan Hijriyah (29 atau 30 hari)
- 🚦 Pembatasan request (rate limiting)
🌐 Deployment (ID)
- Backend: Vercel (FastAPI serverless)
- Frontend: Netlify (Vue 3 + TypeScript)
- Frontend tidak lagi menyimpan URL backend secara hardcoded
🧪 Keandalan (ID)
Disertai unit test untuk memastikan:
- Konsistensi sebelum dan sesudah Maghrib
- Tidak ada perubahan tanggal di tengah malam
- Perbedaan hasil antara hisab dan rukyat valid secara logika
- Tidak ada loncatan hari (misalnya 29 → 1 → 2)
🛠️ Perubahan Besar (Breaking Changes – ID)
- ❗ Backend Express.js dihapus
- ❗ Logika Hijriyah berbasis JavaScript dihapus
- Format response API kini lebih rapi dan terstruktur
📁 Struktur Proyek
apps/
├── backend/ # FastAPI + mesin falak
└── frontend/ # Vue 3 + TypeScript
📌 Catatan
Versi ini berfokus pada konsistensi kalender dan akuntabilitas ilmiah,
bukan sekadar konversi tanggal.
Rilis berikutnya dapat mencakup:
- kriteria rukyat regional
- dokumentasi falak lebih detail
- ekspor kalender (PDF / iCal)
Developed by Ardi
🧠 Fokus: falak, konsistensi kalender, dan logika yang bisa dipertanggungjawabkan.
v2.6.0
📢 Kalender Hijriyah - Release Notes
🚀 Versi 2.6.0 - (Tanggal Rilis: 18 Mei 2025)
🆕 Perubahan Besar:
- 🌙 Penambahan Fitur Weton: Menampilkan weton pengguna berdasarkan lokasi geografis, dengan akurasi lebih baik melalui perhitungan posisi bulan dan konjungsi Hijriyah.
- 🔧 Penyempurnaan Algoritma Perhitungan Weton: Mengoptimalkan metode perhitungan weton untuk mendukung berbagai lokasi di Indonesia, termasuk perubahan posisi bulan dan hari konjungsi.
🔠 Peningkatan:
- 🕒 Peningkatan Tampilan Waktu: Menambahkan weton langsung setelah nama hari dalam format tanggal dan waktu. Ini memberikan informasi lebih lengkap dalam satu tampilan waktu.
- 🌍 Peningkatan Akurasi Geolokasi: Menambahkan dukungan untuk mendeteksi lokasi pengguna dengan lebih akurat, sehingga weton yang ditampilkan sesuai dengan lokasi pengguna di Indonesia.
- 📱 Optimalisasi UI untuk Tampilan Weton: Penyesuaian desain untuk mendukung tampilan yang lebih rapi dan informatif pada perangkat mobile.
🐞 Diperbaiki:
- 🐛 Bug Tampilan Weton pada Zona Waktu yang Berbeda: Memperbaiki masalah tampilan weton yang tidak sesuai dengan zona waktu pengguna, khususnya di luar Jawa.
- 🗺️ Perbaikan Pengambilan Lokasi Geografis: Menyempurnakan pengambilan lokasi otomatis saat pengguna tidak memberikan izin akses lokasi, dengan fallback ke default lokasi yang lebih akurat.
🧑💻 Pengembang:
- ✍️ Menambahkan Komponen Weton: Membuat komponen Vue baru untuk menampilkan weton secara real-time sesuai dengan zona waktu dan lokasi pengguna.
- 🔍 Refinement Algoritma Weton: Mengembangkan algoritma yang mempertimbangkan posisi matahari dan bulan untuk akurasi weton yang lebih baik.
v2.5.0
📢 Kalender Hijriyah - Release Notes
🚀 Versi 2.5.0 - (Tanggal Rilis: 16 Mei 2025)
🆕 Perubahan Besar:
- 🌙 Penambahan Fitur Weton: Menampilkan weton pengguna berdasarkan lokasi geografis, dengan akurasi lebih baik melalui perhitungan posisi bulan dan konjungsi Hijriyah.
- 🔧 Penyempurnaan Algoritma Perhitungan Weton: Mengoptimalkan metode perhitungan weton untuk mendukung berbagai lokasi di Indonesia, termasuk perubahan posisi bulan dan hari konjungsi.
🔠 Peningkatan:
- 🕒 Peningkatan Tampilan Waktu: Menambahkan weton langsung setelah nama hari dalam format tanggal dan waktu. Ini memberikan informasi lebih lengkap dalam satu tampilan waktu.
- 🌍 Peningkatan Akurasi Geolokasi: Menambahkan dukungan untuk mendeteksi lokasi pengguna dengan lebih akurat, sehingga weton yang ditampilkan sesuai dengan lokasi pengguna di Indonesia.
- 📱 Optimalisasi UI untuk Tampilan Weton: Penyesuaian desain untuk mendukung tampilan yang lebih rapi dan informatif pada perangkat mobile.
🐞 Diperbaiki:
- 🐛 Bug Tampilan Weton pada Zona Waktu yang Berbeda: Memperbaiki masalah tampilan weton yang tidak sesuai dengan zona waktu pengguna, khususnya di luar Jawa.
- 🗺️ Perbaikan Pengambilan Lokasi Geografis: Menyempurnakan pengambilan lokasi otomatis saat pengguna tidak memberikan izin akses lokasi, dengan fallback ke default lokasi yang lebih akurat.
🧑💻 Pengembang:
- ✍️ Menambahkan Komponen Weton: Membuat komponen Vue baru untuk menampilkan weton secara real-time sesuai dengan zona waktu dan lokasi pengguna.
- 🔍 Refinement Algoritma Weton: Mengembangkan algoritma yang mempertimbangkan posisi matahari dan bulan untuk akurasi weton yang lebih baik.
v2.4.0
📢 Kalender Hijriyah - Release Notes
🚀 Versi 2.4.0 - (Tanggal Rilis: 15 Mei 2025)
🆕 Perubahan Besar:
- 🌙 Penambahan Fitur Weton: Menampilkan weton pengguna berdasarkan lokasi geografis, dengan akurasi lebih baik melalui perhitungan posisi bulan dan konjungsi Hijriyah.
- 🔧 Penyempurnaan Algoritma Perhitungan Weton: Mengoptimalkan metode perhitungan weton untuk mendukung berbagai lokasi di Indonesia, termasuk perubahan posisi bulan dan hari konjungsi.
💠 Peningkatan:
- 🕒 Peningkatan Tampilan Waktu: Menambahkan weton langsung setelah nama hari dalam format tanggal dan waktu. Ini memberikan informasi lebih lengkap dalam satu tampilan waktu.
- 🌍 Peningkatan Akurasi Geolokasi: Menambahkan dukungan untuk mendeteksi lokasi pengguna dengan lebih akurat, sehingga weton yang ditampilkan sesuai dengan lokasi pengguna di Indonesia.
- 📱 Optimalisasi UI untuk Tampilan Weton: Penyesuaian desain untuk mendukung tampilan yang lebih rapi dan informatif pada perangkat mobile.
🐞 Diperbaiki:
- 🐛 Bug Tampilan Weton pada Zona Waktu yang Berbeda: Memperbaiki masalah tampilan weton yang tidak sesuai dengan zona waktu pengguna, khususnya di luar Jawa.
- 🗺️ Perbaikan Pengambilan Lokasi Geografis: Menyempurnakan pengambilan lokasi otomatis saat pengguna tidak memberikan izin akses lokasi, dengan fallback ke default lokasi yang lebih akurat.
🧑💻 Pengembang:
- ✍️ Menambahkan Komponen Weton: Membuat komponen Vue baru untuk menampilkan weton secara real-time sesuai dengan zona waktu dan lokasi pengguna.
- 🔍 Refinement Algoritma Weton: Mengembangkan algoritma yang mempertimbangkan posisi matahari dan bulan untuk akurasi weton yang lebih baik.