Skip to content

GulajavaMinistudio/jadwal-puasa-ayyamul-bidh-sourcecode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒ™ Aplikasi Web Puasa Ayyamul Bidh

Aplikasi web modern untuk melacak dan mengelola jadwal puasa Ayyamul Bidh โ€“ puasa sunnah yang dijalankan setiap tanggal 13, 14, dan 15 dalam kalender Hijriyah. Dibangun dengan teknologi web standar (HTML5, CSS3, Vanilla JavaScript) tanpa framework kompleks, sehingga ringan, cepat, dan mudah dipelihara.

Security Rating Code Quality License Status Language


โœจ Fitur-Fitur Unggulan

๐Ÿ  Dashboard Informasi Terintegrasi

Dashboard memberikan ringkasan lengkap semua informasi penting dalam satu tampilan:

  • ๐Ÿ“… Tanggal Ganda: Menampilkan tanggal Hijriyah dan Masehi hari ini secara real-time
  • โฐ Jam Digital: Jam yang diperbarui setiap detik dengan deteksi zona waktu Indonesia otomatis (WIB/WITA/WIT)
  • โณ Hitung Mundur Ayyamul Bidh: Informasi berapa hari lagi menuju periode puasa Ayyamul Bidh berikutnya
  • ๐Ÿ•Œ Jadwal Shalat Hari Ini: Ringkasan 6 waktu shalat dengan countdown ke shalat berikutnya
  • ๐Ÿ“Š Statistik Puasa:
    • Progress puasa bulan ini (dari target 3 hari)
    • Total puasa tahun ini (dari target 36 hari)
    • Streak: berapa bulan berturut-turut menyelesaikan puasa Ayyamul Bidh
  • ๐Ÿš€ Akses Cepat: Tombol pintas untuk navigasi ke fitur-fitur utama

๐Ÿ•Œ Jadwal Shalat Komprehensif

Fitur jadwal shalat yang lengkap dan akurat berdasarkan lokasi Anda:

  • 7 Waktu Shalat: Imsak, Subuh, Terbit (Syuruq), Dzuhur, Ashar, Maghrib, dan Isya
  • โฐ Jam Real-Time: Ditampilkan dengan zona waktu yang terdeteksi otomatis
  • โฑ๏ธ Hitung Mundur: Informasi "Akan tiba dalam X menit" untuk shalat berikutnya
  • โœจ Penanda Visual: Shalat yang sedang berlangsung diberi highlight khusus
  • ๐Ÿ“† Tabel Jadwal Bulanan: Jadwal lengkap untuk 30 hari ke depan dengan scroll horizontal
  • ๐Ÿ“ Berbasis Lokasi: Menggunakan koordinat GPS atau input manual kota untuk akurasi tinggi
  • โš™๏ธ Metode Kalkulasi: Mendukung 7 metode perhitungan, default menggunakan standar Kementerian Agama RI

๐Ÿ“… Kalender Hijriyah Interaktif

Kalender visual yang memudahkan pelacakan tanggal Hijriyah:

  • ๐Ÿ”„ Konversi Tanggal: Konversi dua arah antara kalender Masehi (Gregorian) dan Hijriyah
  • ๐ŸŽจ Tampilan Visual Menarik:
    • Grid kalender dengan highlight otomatis untuk tanggal Ayyamul Bidh (13, 14, 15)
    • Penanda hari yang sudah berpuasa (terintegrasi dengan tracker)
    • Indikator tanggal hari ini
  • ๐Ÿงญ Navigasi Mudah: Tombol prev/next untuk berpindah bulan, plus tombol "Hari Ini"
  • ๐Ÿ“‹ Jadwal 3 Bulan: Menampilkan jadwal Ayyamul Bidh untuk 3 bulan ke depan
  • โ„น๏ธ Info Detail: Klik tanggal untuk melihat informasi lengkap

๐Ÿ“Š Tracker Puasa yang Pintar

Sistem pencatatan puasa yang lengkap dengan analitik:

  • โœ… Check/Uncheck Sederhana: Tandai hari puasa hanya dengan satu klik
  • ๐Ÿ“ˆ Statistik Multi-Level:
    • Bulanan: Progress dari target 3 hari per bulan (dengan persentase dan bar chart)
    • Tahunan: Progress dari target 36 hari per tahun (dengan persentase)
    • Streak: Tracking berapa bulan berturut-turut Anda menyelesaikan 3 hari puasa
  • ๐Ÿ“œ Riwayat Lengkap:
    • Accordion per bulan dengan status: Lengkap (3/3), Sebagian (1-2/3), atau Kosong
    • Filter dan sortir berdasarkan tanggal
  • ๐Ÿ’พ Backup & Restore:
    • Export data ke format JSON
    • Import data dari backup dengan validasi integrity
    • Backup otomatis sebelum import

๐Ÿ“– Panduan Islami Lengkap

Referensi keislaman yang bermanfaat:

  • ๐Ÿ“œ Dalil & Hadits: Hadits shahih tentang keutamaan puasa Ayyamul Bidh dengan sanad
  • ๐Ÿคฒ Doa-Doa Puasa:
    • Doa berbuka puasa (Arab + Latin + Terjemahan Indonesia)
    • Doa sahur (Arab + Latin + Terjemahan Indonesia)
    • Niat puasa sunnah
  • โ“ FAQ (Tanya Jawab): Jawaban untuk 10+ pertanyaan umum seputar puasa Ayyamul Bidh
  • ๐Ÿ’ก Tips Praktis: Panduan dan tips agar konsisten menjalankan puasa sunnah

โš™๏ธ Pengaturan Fleksibel

Kustomisasi aplikasi sesuai kebutuhan Anda:

  • ๐Ÿ“ Manajemen Lokasi:
    • Auto-detect menggunakan GPS browser (dengan izin pengguna)
    • Input manual: Nama kota + Negara
    • Simpan preferensi lokasi
  • ๐Ÿ•Œ Metode Kalkulasi Shalat (7 pilihan):
    • Kementerian Agama Republik Indonesia (Default) โญ
    • Muslim World League (MWL)
    • Islamic Society of North America (ISNA)
    • Egyptian General Authority of Survey
    • Umm Al-Qura University, Mekkah
    • University of Islamic Sciences, Karachi
    • Institute of Geophysics, University of Tehran
  • ๐Ÿ’พ Manajemen Data:
    • Export: Unduh semua data dalam format JSON
    • Import: Restore data dari file backup dengan validasi
    • Reset: Hapus semua data (dengan konfirmasi ganda untuk keamanan)
  • ๐Ÿ”’ Privasi: Semua data tersimpan di browser Anda (localStorage), tidak ada server eksternal

๐Ÿš€ Cara Menggunakan

๐ŸŒŸ Untuk Pengguna Umum (Tanpa Pengetahuan Teknis)

Cara paling mudah - Langsung buka di browser:

  1. Download Aplikasi:

    • Klik tombol hijau "Code" di halaman GitHub ini
    • Pilih "Download ZIP"
    • Extract file ZIP ke folder di komputer Anda
  2. Buka Aplikasi:

    • Cari file index.html di folder hasil extract
    • Double-click file tersebut, atau
    • Klik kanan โ†’ "Open with" โ†’ Pilih browser favorit (Chrome/Firefox/Edge)
  3. Setup Awal (hanya sekali):

    • Aplikasi akan meminta izin untuk mengakses lokasi GPS โ†’ Klik "Izinkan/Allow"
    • Jika tidak ingin menggunakan GPS, klik "Skip" dan atur lokasi manual di menu Pengaturan
  4. Siap Digunakan! ๐ŸŽ‰

    • Dashboard akan menampilkan semua informasi
    • Mulai tandai hari puasa Anda di menu Tracker
    • Lihat jadwal shalat di menu Jadwal Shalat
    • Cek kalender Hijriyah di menu Kalender

๐Ÿ’ก Tips untuk Pengguna:

  • ๐Ÿ’พ Backup Rutin: Export data Anda secara berkala dari menu Pengaturan
  • ๐Ÿ”– Bookmark: Tambahkan ke bookmark browser untuk akses cepat
  • ๐Ÿ“ Update Lokasi: Jika pindah kota, update lokasi di Pengaturan
  • ๐ŸŒ™ Cek Rutin: Lihat countdown Ayyamul Bidh di dashboard setiap hari

๐Ÿ‘จโ€๐Ÿ’ป Untuk Developer

Aplikasi ini sangat mudah untuk di-develop karena tidak memerlukan build process yang kompleks.

Opsi 1: Buka Langsung di Browser (Paling Sederhana)

# Clone repository
git clone https://github.com/yourusername/puasa-ayyamul-bidh.git
cd puasa-ayyamul-bidh

# Buka index.html langsung di browser
# Atau gunakan extension "Live Server" di VS Code untuk auto-reload

Opsi 2: Development Server dengan Vite (Direkomendasikan)

# Install dependencies (hanya untuk dev tools)
npm install

# Jalankan development server
npm run dev
# Aplikasi akan berjalan di http://localhost:5173

# Build untuk production (optional)
npm run build

Opsi 3: HTTP Server Alternatif

# Menggunakan http-server
npm run serve
# Aplikasi akan berjalan di http://localhost:8000

Setup Awal Development:

  1. Izinkan akses lokasi GPS atau set manual di menu Pengaturan
  2. Pilih metode kalkulasi shalat (default: Kemenag RI sudah sesuai untuk Indonesia)
  3. Buka DevTools untuk melihat console logs dan debugging
  4. Mulai coding!

๐Ÿ“– Dokumentasi Developer: Lihat folder .agent/ untuk dokumentasi lengkap:

  • AI_AGENT_GUIDE.md - Panduan lengkap untuk AI assistants
  • CODING_STANDARDS.md - Style guide dan konvensi kode
  • SECURITY_GUIDELINES.md - Best practices keamanan
  • PROJECT_OVERVIEW.md - Arsitektur dan overview sistem

๐Ÿ—๏ธ Teknologi yang Digunakan

Core Technologies

Framework & Library Utama:

  • HTML5 - Semantic markup dengan accessibility terbaik
  • CSS3 - Custom styling modern
  • Bootstrap 5.3.8 - Framework CSS untuk responsive design dan komponen UI
  • Vanilla JavaScript ES6+ - Modular JavaScript tanpa framework, menggunakan ES6 Modules
  • localStorage Web API - Penyimpanan data lokal dengan validation layer

External APIs:

  • Aladhan API - Prayer times calculation & Hijri calendar conversion
  • Browser Geolocation API - Deteksi lokasi pengguna otomatis

Development Tools

AI-Powered Development:

Build Tools (Dev Only):

  • Vite 7.2.4 - Lightning-fast development server dengan Hot Module Replacement (HMR)
  • http-server 14.1.1 - Simple HTTP server alternatif
  • Terser 5.44.1 - JavaScript minifier untuk production build
  • npm - Package manager

Styling & Assets:

  • Bootstrap Icons - Icon library
  • Google Fonts - Web fonts (Inter untuk Latin, Amiri untuk Arabic)

โš ๏ธ Catatan Penting: Aplikasi ini tidak memerlukan build process untuk berjalan. Semua JavaScript modules dimuat langsung oleh browser menggunakan ES6 import/export. Vite dan build tools hanya digunakan untuk development experience yang lebih baik (hot reload, dll).


๐Ÿ“‚ Struktur Project

puasa-ayyamul-bidh/
โ”œโ”€โ”€ .agent/                      # ๐Ÿค– Dokumentasi AI Agent & Workflows
โ”‚   โ”œโ”€โ”€ rules/                   # Aturan dan guidelines untuk AI
โ”‚   โ”œโ”€โ”€ workflows/               # Workflow automasi
โ”‚   โ”œโ”€โ”€ AI_AGENT_GUIDE.md        # Panduan lengkap untuk AI assistants
โ”‚   โ”œโ”€โ”€ PROJECT_OVERVIEW.md      # Overview arsitektur sistem
โ”‚   โ”œโ”€โ”€ SECURITY_GUIDELINES.md   # Best practices keamanan
โ”‚   โ””โ”€โ”€ CODING_STANDARDS.md      # Standar dan konvensi kode
โ”‚
โ”œโ”€โ”€ js/                          # ๐Ÿ“ฆ JavaScript Modules (ES6)
โ”‚   โ”œโ”€โ”€ config.js                # โš™๏ธ  Konfigurasi dan konstanta global
โ”‚   โ”œโ”€โ”€ validators.js            # ๐Ÿ›ก๏ธ  Validasi dan sanitasi data (security layer)
โ”‚   โ”œโ”€โ”€ storage.js               # ๐Ÿ’พ  localStorage wrapper dengan auto-validation
โ”‚   โ”œโ”€โ”€ app.js                   # ๐ŸŽฎ  Main application controller & lifecycle
โ”‚   โ”œโ”€โ”€ prayer-times.js          # ๐Ÿ•Œ  Integrasi Aladhan API untuk jadwal shalat
โ”‚   โ”œโ”€โ”€ hijri-calendar.js        # ๐Ÿ“…  Logika kalender Hijriyah & konversi
โ”‚   โ”œโ”€โ”€ hijri-calculator.js      # ๐Ÿงฎ  Kalkulasi Hijri lokal (progressive loading)
โ”‚   โ”œโ”€โ”€ tracker.js               # ๐Ÿ“Š  Tracker puasa dengan statistik
โ”‚   โ”œโ”€โ”€ utils.js                 # ๐Ÿ”ง  Helper functions & utilities
โ”‚   โ”œโ”€โ”€ request-queue.js         # ๐Ÿšฆ  Queue management untuk API requests
โ”‚   โ””โ”€โ”€ main.js                  # ๐Ÿšช  Entry point aplikasi
โ”‚
โ”œโ”€โ”€ css/                         # ๐ŸŽจ Stylesheets
โ”‚   โ”œโ”€โ”€ style.css                # Main stylesheet
โ”‚   โ””โ”€โ”€ components.css           # Component-specific styles
โ”‚
โ”œโ”€โ”€ assets/                      # ๐Ÿ–ผ๏ธ  Images & static files
โ”‚
โ”œโ”€โ”€ plan/                        # ๐Ÿ“‹  Planning docs & implementation notes
โ”‚   โ”œโ”€โ”€ code-review-report.md    # Laporan security audit
โ”‚   โ”œโ”€โ”€ implementation-summary.md # Ringkasan implementasi
โ”‚   โ””โ”€โ”€ ... (dokumen planning lainnya)
โ”‚
โ”œโ”€โ”€ dist/                        # ๐Ÿ“ฆ  Production build output (generated)
โ”‚
โ”œโ”€โ”€ *.html                       # ๐Ÿ“„  HTML Pages
โ”‚   โ”œโ”€โ”€ index.html               # Dashboard / Home page
โ”‚   โ”œโ”€โ”€ jadwal-shalat.html       # Prayer times page
โ”‚   โ”œโ”€โ”€ kalender.html            # Hijri calendar page
โ”‚   โ”œโ”€โ”€ tracker.html             # Fasting tracker page
โ”‚   โ”œโ”€โ”€ panduan.html             # Islamic guide page
โ”‚   โ””โ”€โ”€ pengaturan.html          # Settings page
โ”‚
โ”œโ”€โ”€ package.json                 # ๐Ÿ“ฆ  npm configuration
โ”œโ”€โ”€ vite.config.js               # โšก  Vite configuration
โ””โ”€โ”€ README.md                    # ๐Ÿ“–  Dokumentasi ini

Penjelasan File Penting

File Ukuran Deskripsi
js/app.js ~16 KB Controller utama yang mengkoordinasikan semua modules
js/validators.js ~11 KB Security layer dengan validasi schema lengkap
js/hijri-calendar.js ~13 KB Logika kalender Hijriyah dengan progressive loading
js/prayer-times.js ~11 KB Integrasi API dengan caching & error handling
js/utils.js ~10 KB Helper functions untuk formatting, timezone, dll
js/tracker.js ~10 KB Manajemen data puasa dengan statistik
js/storage.js ~6 KB localStorage wrapper dengan validation otomatis

๐Ÿงฉ Arsitektur Sistem

Desain Modular

Aplikasi menggunakan ES6 Modules dengan prinsip Separation of Concerns dan Single Responsibility:

// Dependency Flow (Hierarki Module)
main.js
  โ””โ”€โ–ถ app.js (Application Controller)
       โ”œโ”€โ–ถ config.js       (Global constants & configuration)
       โ”œโ”€โ–ถ validators.js   (Input validation & sanitization)
       โ”œโ”€โ–ถ storage.js      (localStorage dengan auto-validation)
       โ”œโ”€โ–ถ prayer-times.js (Aladhan API integration)
       โ”œโ”€โ–ถ hijri-calendar.js (Kalender Hijriyah logic)
       โ”œโ”€โ–ถ hijri-calculator.js (Local Hijri calculation)
       โ”œโ”€โ–ถ tracker.js      (Fasting data management)
       โ”œโ”€โ–ถ request-queue.js (API request queuing)
       โ””โ”€โ–ถ utils.js        (Helper utilities)

Key Modules & Tanggung Jawabnya

Module Purpose Key Features Dependencies
config.js Konfigurasi terpusat Constants, API endpoints, validation rules -
validators.js Security layer Schema validation, sanitization, prototype pollution prevention config.js
storage.js Data persistence localStorage wrapper dengan auto-validation validators.js, config.js
app.js Application controller Lifecycle management, koordinasi modules, event handling Semua modules
prayer-times.js Prayer times API Aladhan API integration, caching, error handling validators.js, storage.js, request-queue.js
hijri-calendar.js Hijri calendar Date conversion, Ayyamul Bidh calculation, progressive loading hijri-calculator.js, prayer-times.js, validators.js
hijri-calculator.js Local Hijri calc Offline Hijri calculation untuk initial load -
tracker.js Fasting tracker Data management, statistics, import/export storage.js, validators.js
utils.js Utilities Date formatting, timezone detection, toast, helpers config.js
request-queue.js API queue Rate limiting, request queuing untuk API calls -

Data Flow Pattern

graph TB
    User[๐Ÿ‘ค User Interaction] --> UI[๐Ÿ–ฅ๏ธ HTML Pages]
    UI --> App[๐ŸŽฎ app.js Controller]
    
    App --> PT[๐Ÿ•Œ prayer-times.js]
    App --> HC[๐Ÿ“… hijri-calendar.js]
    App --> TR[๐Ÿ“Š tracker.js]
    
    PT --> API1[๐ŸŒ Aladhan API]
    HC --> API1
    HC --> CALC[๐Ÿงฎ hijri-calculator.js]
    
    PT --> Cache[๐Ÿ’พ storage.js]
    HC --> Cache
    TR --> Cache
    
    Cache --> LS[๐Ÿ“ฆ localStorage]
    
    PT --> VAL[๐Ÿ›ก๏ธ validators.js]
    HC --> VAL
    TR --> VAL
    Cache --> VAL
    
    VAL --> CFG[โš™๏ธ config.js]
    
    style App fill:#10b981
    style VAL fill:#ef4444
    style Cache fill:#3b82f6
Loading

Security Architecture

Aplikasi menerapkan Defense in Depth dengan multiple security layers:

  1. Input Layer โ†’ validators.js - Validasi & sanitasi semua input
  2. Storage Layer โ†’ storage.js - Auto-validation pada read/write localStorage
  3. API Layer โ†’ prayer-times.js - Validasi response sebelum digunakan
  4. Presentation Layer โ†’ Safe DOM manipulation (textContent, createElement)

๐Ÿ”’ Keamanan & Kualitas

๐Ÿ›ก๏ธ Skor Keamanan: 8.5/10

Aplikasi ini dibangun dengan pendekatan security-first menggunakan multiple layers of protection:

Proteksi Keamanan yang Diterapkan

Layer Proteksi Implementasi
Input XSS Prevention Sanitasi input via Validators.sanitizeString(), safe DOM manipulation
Storage localStorage Injection Prevention Auto-validation pada semua read/write operations
API Response Validation Schema validation untuk semua API responses
Object Prototype Pollution Prevention Deep cloning dengan filtering __proto__, constructor, dll
Display Safe Rendering Hanya gunakan textContent, createElement - NO innerHTML

๐Ÿ“‹ Hasil Security Audit (November 2025)

โœ… Semua critical vulnerabilities telah diperbaiki:

  • XSS (Cross-Site Scripting)
  • Prototype Pollution
  • localStorage Injection
  • Unvalidated API Data
  • Debug Code Leakage

๐Ÿ“„ Detail lengkap: Lihat plan/code-review-report.md dan plan/implementation-summary.md


๐ŸŽจ Desain & UX

Prinsip Desain

  • ๐Ÿ“ฑ Mobile-First: Responsive dari smartphone hingga desktop
  • โ™ฟ Accessible: Semantic HTML, ARIA labels, keyboard navigation support
  • โšก Performance: Caching optimal, minimal API calls, lazy loading
  • ๐ŸŽฏ Clean & Simple: Interface modern, minimalis dengan estetika Islami

Palet Warna

Fungsi Warna Hex Code
Primary Emerald Green #10b981
Accent Teal #14b8a6
Background Light Gray #f9fafb
Text Dark Gray #1f2937

Tipografi

  • Latin: Inter (Google Fonts) - modern sans-serif
  • Arabic: Amiri (Google Fonts) - traditional Arabic font

๐Ÿ“ฑ Penjelasan Detail Fitur

Berikut adalah penjelasan lengkap untuk setiap halaman dan fitur dalam aplikasi:

1. ๐Ÿ  Halaman Dashboard (Beranda)

Informasi Real-Time:

  • Tanggal Hijriyah dan Masehi hari ini dengan auto-update
  • Jam digital yang update setiap detik dengan zona waktu Indonesia (WIB/WITA/WIT)
  • Countdown dinamis ke periode Ayyamul Bidh berikutnya

Ringkasan Waktu Shalat:

  • Grid 6 waktu shalat hari ini (Subuh, Dzuhur, Ashar, Maghrib, Isya, Imsak)
  • Countdown ke shalat berikutnya dengan format "Akan tiba dalam X menit"
  • Highlight otomatis untuk shalat yang sedang berlangsung

Statistik Puasa:

  • Progress bulan ini (contoh: 2/3 hari)
  • Total puasa tahun ini (contoh: 24/36 hari)
  • Streak: berapa bulan berturut-turut menyelesaikan 3 hari puasa

Akses Cepat:

  • Tombol navigasi ke semua halaman utama

2. ๐Ÿ•Œ Halaman Jadwal Shalat

Display Waktu:

  • Jam digital real-time (HH:MM:SS) dengan zona waktu otomatis
  • 7 waktu shalat lengkap: Imsak, Subuh, Terbit, Dzuhur, Ashar, Maghrib, Isya
  • Countdown real-time ke shalat berikutnya

Jadwal Bulanan:

  • Tabel jadwal lengkap untuk 30 hari ke depan
  • Scroll horizontal untuk kemudahan navigasi

Akurasi:

  • Berbasis koordinat GPS atau input manual kota
  • Mendukung 7 metode kalkulasi internasional

3. ๐Ÿ“… Halaman Kalender Hijriyah

Konversi Tanggal:

  • Gregorian (Masehi) โ†’ Hijri (Komariyah)
  • Hijri (Komariyah) โ†’ Gregorian (Masehi)

Tampilan Kalender:

  • Grid visual dengan highlight tanggal Ayyamul Bidh (13, 14, 15)
  • Integrasi dengan tracker - menampilkan tanggal yang sudah berpuasa
  • Penanda hari ini

Navigasi:

  • Tombol Prev/Next untuk berpindah bulan
  • Tombol "Hari Ini" untuk kembali ke bulan sekarang
  • Jadwal 3 bulan ke depan untuk Ayyamul Bidh

4. ๐Ÿ“Š Halaman Tracker Puasa

Pencatatan:

  • Checkbox untuk mark/unmark hari puasa
  • Interface sederhana dan intuitif

Analitik:

  • Bulanan: Progress dari target 3 hari (dengan bar chart)
  • Tahunan: Progress dari target 36 hari (dengan persentase)
  • Streak: Tracking konsistensi (berapa bulan berturut-turut lengkap)

Riwayat:

  • Accordion per bulan dengan status: Lengkap (3/3), Sebagian (1-2/3), Kosong
  • Filter dan sorting berdasarkan tanggal

Backup & Restore:

  • Export: Download data ke file JSON
  • Import: Upload file backup dengan validasi integrity
  • Backup otomatis sebelum import untuk keamanan

5. ๐Ÿ“– Halaman Panduan Islami

Dalil & Hadits:

  • Hadits shahih tentang keutamaan puasa Ayyamul Bidh
  • Sanad dan penjelasan konteks

Doa-Doa:

  • Doa berbuka puasa (Arab, Latin, Terjemahan Indonesia)
  • Doa sahur (Arab, Latin, Terjemahan Indonesia)
  • Niat puasa sunnah

Tanya Jawab (FAQ):

  • 10+ pertanyaan umum dan jawabannya
  • Hukum, tata cara, dan tips praktis

6. โš™๏ธ Halaman Pengaturan

Manajemen Lokasi:

  • Auto-detect menggunakan GPS browser (dengan izin pengguna)
  • Input manual: Nama Kota + Negara
  • Simpan preferensi untuk penggunaan berikutnya

Metode Kalkulasi Shalat:

  1. Kementerian Agama RI (Default - Indonesia) โญ
  2. Muslim World League (MWL)
  3. Islamic Society of North America (ISNA)
  4. Egyptian General Authority of Survey
  5. Umm Al-Qura University, Mekkah
  6. University of Islamic Sciences, Karachi
  7. Institute of Geophysics, University of Tehran

Manajemen Data:

  • Export: Unduh semua data dalam format JSON
  • Import: Restore dari file backup dengan validasi
  • Reset: Hapus semua data (konfirmasi ganda untuk mencegah kesalahan)

Privasi:

  • Semua data tersimpan lokal di browser Anda (localStorage)
  • Tidak ada pengiriman data ke server eksternal
  • Data hanya bisa diakses oleh Anda

๐ŸŒ Dukungan Browser

Browser Versi Minimum Status
Chrome / Edge Terbaru โœ… Didukung penuh
Firefox Terbaru โœ… Didukung penuh
Safari Terbaru โœ… Didukung penuh
Opera Terbaru โœ… Didukung penuh
Mobile Safari iOS 12+ โœ… Didukung
Chrome Mobile Android 5+ โœ… Didukung

โš ๏ธ Catatan Penting: Fitur Geolocation (GPS) memerlukan koneksi HTTPS atau localhost untuk alasan keamanan.


๐Ÿ‘จโ€๐Ÿ’ป Panduan Development

Setup Cepat

# 1. Clone repository
git clone https://github.com/yourusername/puasa-ayyamul-bidh.git
cd puasa-ayyamul-bidh

# 2. Install dev dependencies
npm install

# 3. Jalankan development server
npm run dev
# Atau gunakan alternatif:
npm run serve

Coding Guidelines

Dokumentasi lengkap tersedia di folder .agent/:

  • AI_AGENT_GUIDE.md - Panduan comprehensive untuk AI assistants
  • CODING_STANDARDS.md - Style guide dan konvensi kode
  • SECURITY_GUIDELINES.md - Security patterns dan best practices
  • PROJECT_OVERVIEW.md - Arsitektur sistem

Rules Penting (Quick Reference):

โœ… DO:

  • Gunakan konstanta dari Config (hindari magic numbers)
  • Validasi semua data eksternal (API, localStorage, user input)
  • Sanitasi input user sebelum digunakan
  • Gunakan Storage module, bukan direct localStorage
  • Tambahkan JSDoc comments untuk fungsi public
  • Handle errors dengan proper error messages

โŒ DON'T:

  • Jangan gunakan innerHTML dengan dynamic data
  • Jangan simpan data sensitif ke localStorage
  • Jangan skip validation, meskipun data dari trusted source

Testing

Manual Testing:

npm run dev
# Buka browser, test semua fitur

Security Testing:

  • Test XSS: Coba inject <script>alert('XSS')</script> pada input
  • Test localStorage: Edit manual via DevTools, pastikan validation bekerja
  • Test API: Simulasikan invalid responses

Roadmap: Unit tests dengan Jest, E2E tests dengan Playwright



๐Ÿ“ Referensi API

Aladhan API Endpoints

Aplikasi menggunakan endpoints berikut dari Aladhan API:

# Waktu shalat berdasarkan kota
GET /v1/timingsByCity/{date}
    ?city={city}
    &country={country}
    &method={method}

# Waktu shalat berdasarkan koordinat GPS
GET /v1/timings/{date}
    ?latitude={lat}
    &longitude={lon}
    &method={method}

# Konversi tanggal: Gregorian โ†’ Hijri
GET /v1/gToH/{date}

# Konversi tanggal: Hijri โ†’ Gregorian
GET /v1/hToG/{date}

# Kalender bulanan
GET /v1/calendarByCity/{year}/{month}
    ?city={city}
    &country={country}

Parameter method (Metode Kalkulasi):

  • 20 = Kementerian Agama RI (Default)
  • 3 = Muslim World League (MWL)
  • 2 = Islamic Society of North America (ISNA)
  • 5 = Egyptian General Authority
  • 4 = Umm Al-Qura University
  • 1 = University of Islamic Sciences, Karachi
  • 7 = Institute of Geophysics, Tehran

Note: Aplikasi mengimplementasikan caching untuk mengurangi API calls dan meningkatkan performa.



๐Ÿ› Known Issues & Future Improvements

โœ… Completed Features

  • โœ… Kalender Hijriyah interaktif dengan progressive loading
  • โœ… Tracker puasa dengan visualisasi chart dan statistik lengkap
  • โœ… Real-time clock dengan timezone auto-detection
  • โœ… Responsive menu untuk desktop dan mobile
  • โœ… Lokalisasi 100% Bahasa Indonesia

๐Ÿšง Planned Features (Roadmap)

  • Browser Notifications - Notifikasi untuk mengingatkan jadwal shalat
  • PWA Support - Progressive Web App untuk install di home screen
  • Dark Mode - Tema gelap untuk kenyamanan mata
  • Multi-language - Dukungan bahasa Inggris dan Arab
  • Automated Tests - Unit tests, integration tests, E2E tests

๐Ÿ“‹ Lihat lebih lengkap: GitHub Issues


๐Ÿ†• Update Terkini

Versi 1.0.0 (Desember 2025)

๐ŸŽ‰ Fitur-Fitur Utama yang Telah Diimplementasikan:

  1. โฐ Jam Real-Time & Zona Waktu

    • Jam digital (HH:MM:SS) yang update setiap detik
    • Auto-detection zona waktu Indonesia (WIB/WITA/WIT)
    • Countdown "Akan tiba dalam X menit" untuk shalat berikutnya
  2. ๐Ÿ“… Kalender Hijriyah Interaktif

    • Grid kalender visual dengan highlight Ayyamul Bidh
    • Progressive loading (load lokal dulu, kemudian upgrade dengan API)
    • Integrasi dengan tracker puasa
    • Jadwal 3 bulan ke depan
  3. ๐Ÿ“Š Tracker Puasa Lengkap

    • Checkbox interface yang simple
    • Statistik bulanan, tahunan, dan streak
    • Visual bar chart untuk progress
    • History accordion dengan status lengkap
    • Export/Import dengan validasi
  4. ๐Ÿ•Œ Jadwal Shalat Komprehensif

    • 7 waktu shalat (Imsak, Subuh, Terbit, Dzuhur, Ashar, Maghrib, Isya)
    • Tabel jadwal bulanan 30 hari
    • Location-based dengan GPS atau manual
  5. ๐Ÿ‡ฎ๐Ÿ‡ฉ Lokalisasi Penuh

    • 100% Bahasa Indonesia di seluruh UI
    • Tidak ada lagi teks Inggris yang tersisa
  6. ๐Ÿ“ฑ Responsivitas

    • Mobile-first design
    • Hamburger menu yang mudah diakses
    • Layout optimal untuk semua ukuran layar
  7. ๐Ÿ›ก๏ธ Keamanan

    • XSS prevention dengan input sanitization
    • Prototype pollution protection
    • localStorage validation
    • API response validation

๐Ÿ› Bug Fixes:

  • โœ… Parse error waktu shalat dengan format "04:32 (WIB)"
  • โœ… process.env error diganti dengan import.meta.env
  • โœ… Footer credit updated ke "Gulajava Ministudio"

๐Ÿ“„ Detail lengkap: Lihat plan/implementation-summary.md



๐Ÿ—บ๏ธ Roadmap Pengembangan

v1.1 - Peningkatan UX (Q1 2026)

  • Browser Notifications - Notifikasi push untuk waktu shalat
  • Dark Mode - Toggle tema gelap untuk kenyamanan mata
  • Offline Mode Enhancement - Service Worker untuk pengalaman offline lebih baik
  • Performance Optimization - Code splitting dan lazy loading

v2.0 - Ekspansi Fitur (Q2 2026)

  • PWA Full Support - Install ke home screen, fully offline-capable
  • Multi-language - Interface dalam Bahasa Inggris dan Arab
  • Social Sharing - Share progress puasa ke social media
  • Reminders & Alerts - Customizable reminders untuk puasa
  • Automated Testing - Unit tests, integration tests, E2E tests

v3.0 - Ekosistem (Future)

  • Mobile Apps - Native apps dengan React Native / Flutter
  • Backend Sync - Optional cloud backup dan sync antar device
  • Community Features - Leaderboard, challenges, dan group fasting tracker
  • Widget Support - Desktop dan mobile widgets

๐Ÿ’ก Have ideas? Submit feature requests di GitHub Issues


๐Ÿค Kontribusi

Kami sangat menghargai kontribusi dari komunitas! Berikut cara berkontribusi:

Langkah-langkah Kontribusi

  1. Fork repository ini
  2. Clone fork Anda ke lokal:
    git clone https://github.com/YOUR_USERNAME/puasa-ayyamul-bidh.git
  3. Create branch untuk fitur Anda:
    git checkout -b feature/FiturAmazingAnda
  4. Baca dokumentasi di .agent/ folder:
    • CODING_STANDARDS.md - Panduan style code
    • SECURITY_GUIDELINES.md - Panduan keamanan
  5. Develop & Test - Kembangkan fitur dan test secara menyeluruh
  6. Commit dengan pesan yang jelas:
    git commit -m "feat: menambahkan fitur amazing"
  7. Push ke branch Anda:
    git push origin feature/FiturAmazingAnda
  8. Open Pull Request dengan deskripsi lengkap

Checklist Sebelum Pull Request

  • Code mengikuti coding standards
  • Security review passed (tidak ada vulnerability)
  • Manual testing berhasil di berbagai browser
  • Tidak ada console.log atau debug code
  • Dokumentasi diupdate jika menambah fitur baru
  • Commit messages jelas dan deskriptif

Types of Contributions:

  • ๐Ÿ› Bug fixes
  • โœจ New features
  • ๐Ÿ“š Documentation improvements
  • ๐ŸŽจ UI/UX enhancements
  • ๐Ÿ”’ Security improvements
  • โ™ฟ Accessibility improvements

๐Ÿ“„ Lisensi

Aplikasi ini bersifat open source dan gratis untuk digunakan.

MIT License - Anda bebas untuk:

  • โœ… Menggunakan untuk project pribadi atau komersial
  • โœ… Memodifikasi sesuai kebutuhan
  • โœ… Mendistribusikan ke orang lain
  • โœ… Menggunakan sebagai bahan pembelajaran

Dengan syarat:

  • ๐Ÿ“ Tetap cantumkan credit ke project original
  • ๐Ÿ“ Sertakan copy dari MIT License

Dibuat dengan โค๏ธ untuk kepentingan umum umat Muslim di seluruh dunia.


๐Ÿ™ Credits & Terima Kasih

APIs & External Services

Libraries & Frameworks

Development Tools

AI-Powered Development Partner

Development aplikasi ini dipercepat dengan bantuan AI assistants:

Inspirasi & Dukungan

  • Komunitas Muslim di seluruh dunia yang menjalankan puasa sunnah
  • Sistem kalender Hijriyah (Komariyah) dan Masehi (Syamsiyah)
  • Kebutuhan umat untuk tools yang memudahkan ibadah

Developed by: Gulajava Ministudio ๐Ÿ‘จโ€๐Ÿ’ป


๐Ÿ“ž Kontak & Dukungan

Butuh bantuan atau ingin memberikan feedback? Hubungi kami melalui:


๐Ÿ“Š Statistik Project

Metric Value
Dibuat 2025
Terakhir Update Desember 2025
Versi 1.0.0
Security Score 8.5/10 ๐Ÿ›ก๏ธ
Code Quality 7.0/10 โญ
Bahasa UI 100% Bahasa Indonesia ๐Ÿ‡ฎ๐Ÿ‡ฉ
Total Code ~3,500+ baris
JavaScript Modules 11 files
HTML Pages 6 halaman
CSS Files 2 files
Total File Size ~90 KB (uncompressed)

๐Ÿ’ก Tips & Best Practices

Untuk Pengguna

Tip Deskripsi
๐Ÿ’พ Backup Rutin Export data setiap bulan untuk keamanan
๐Ÿ“ Update Lokasi Perbarui jika pindah kota agar jadwal shalat akurat
๐Ÿ”– Bookmark Simpan ke bookmark browser untuk akses cepat
๐Ÿ“ฑ Install PWA (Coming soon) Install sebagai app untuk pengalaman native
โœ… Konsisten Tandai puasa segera setelah selesai agar tidak lupa

Untuk Developer

Tip Deskripsi
๐Ÿ“– Baca Docs Mulai dengan .agent/AI_AGENT_GUIDE.md
๐Ÿ›ก๏ธ Security First Validasi SEMUA data eksternal tanpa exception
โš™๏ธ Use Constants Gunakan Config, hindari magic numbers
๐Ÿงช Test Manually Jangan skip manual testing, esp. untuk security
๐Ÿ“ JSDoc Dokumentasikan public functions dengan JSDoc
๐Ÿ” Code Review Review security guidelines sebelum commit

๐ŸŒŸ Star History

Jika project ini bermanfaat untuk Anda, tolong berikan โญ Star di GitHub untuk mendukung pengembangan lebih lanjut!

Star History Chart


Dibuat dengan โค๏ธ untuk Umat Muslim di Seluruh Dunia

Semoga aplikasi ini bermanfaat dan menjadi amal jariyah bagi kita semua! ๐Ÿคฒ

Barakallahu fiikum! โœจ


Terakhir diupdate: Desember 2025 | Security Audit: November 2025 โœ… | UI: 100% Bahasa Indonesia ๐Ÿ‡ฎ๐Ÿ‡ฉ

About

Kode sumber dari aplikasi jadwal puasa sunnah ayyamul bidh berbasis web

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

โšก