Aplikasi jam masjid digital yang modern dan responsif dengan sistem database-less menggunakan Next.js 15, TypeScript, dan Tailwind CSS.
- Integrasi dengan MyQuran API v2 untuk jadwal shalat akurat
- Auto-refresh jadwal setiap tengah malam
- Sistem notifikasi adzan dengan countdown real-time
- Toleransi waktu 1 menit untuk akurasi
- Fallback data offline jika API tidak tersedia
- Design responsif untuk berbagai ukuran layar
- Dark theme dengan warna hijau Islamic
- Live streaming Masjidil Haram (opsional)
- Animasi smooth dan loading states
- Konfigurasi informasi masjid
- Manajemen pengumuman/kajian
- Sistem autentikasi sederhana
- Update real-time tanpa refresh
- Data disimpan di
localStorage+ file JSON - Tidak memerlukan database server
- Backup otomatis ke file sistem
- Sync data antar tab browser
- Node.js 18+
- npm atau yarn
# Clone repository
git clone <repository-url>
cd jam-masjid
# Install dependencies
npm install
# Jalankan development server
npm run dev
# Buka browser di http://localhost:3000npm run build
npm startjam-masjid/
βββ app/
β βββ components/ # Komponen UI reusable
β βββ services/ # Business logic & API calls
β βββ hooks/ # Custom React hooks
β βββ types/ # TypeScript type definitions
β βββ admin/ # Admin panel pages
β βββ prayer/ # Halaman adzan
β βββ api/ # API routes
βββ public/
β βββ data/ # File JSON untuk data storage
βββ components/ # Global UI components
βββ lib/ # Utility functions
Edit file public/data/mosque-config.json:
{
"mosque": {
"name": "Nama Masjid",
"location": "Lokasi Masjid",
"cityCode": "0506",
"liveStream": {
"url": "https://youtube.com/embed/...",
"title": "Live Stream Title",
"autoplay": true,
"muted": false
}
},
"settings": {
"announcements": [...],
"prayerTimeAdjustments": {...}
}
}Dapatkan city code dari MyQuran API
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Radix UI
- API: MyQuran API v2
- Storage: localStorage + JSON files
- Authentication: Cookie-based
- β Retry mechanism (3 attempts) untuk API calls
- β Fallback ke data offline jika API gagal
- β Graceful degradation untuk semua fitur
- β Network status detection
- β Dynamic interval checking untuk efisiensi
- β Lazy loading untuk komponen berat
- β Optimized bundle size
- β Static generation untuk halaman statis
- β Input validation dengan Zod
- β XSS protection
- β Secure cookie handling
- β Environment variable protection
- Buka
/admin/login - Default credentials (ubah di production):
- Username:
admin - Password:
admin123
- Username:
- Desktop: Layout 2 kolom dengan live stream
- Tablet: Layout adaptif dengan grid responsif
- Mobile: Layout 1 kolom dengan navigasi touch-friendly
- Endpoint:
https://api.myquran.com/v2/sholat/ - Features: Jadwal shalat, pencarian kota
- Fallback: Data statis jika API down
npm run build
# Deploy ke Vercelnpm run build
npm start
# Aplikasi berjalan di port 3000- Otomatis update setiap tengah malam
- Manual refresh melalui admin panel
- Fallback ke data lokal jika API gagal
- Data tersimpan di
public/data/ - Backup otomatis ke localStorage
- Export/import melalui admin panel
- Aplikasi akan menggunakan data fallback
- Indikator "Offline" muncul di header
- Data terakhir tetap tersimpan
- Cek koneksi internet
- Verifikasi city code di config
- Restart aplikasi jika perlu
MIT License - Bebas digunakan untuk keperluan masjid dan dakwah.
- Fork repository
- Buat feature branch
- Commit changes
- Push ke branch
- Buat Pull Request
Untuk pertanyaan dan dukungan, silakan buat issue di repository ini.
Dibuat dengan β€οΈ untuk kemudahan ibadah umat Islam