'بِسْمِ ٱللَّٰهِ ٱلرَّحْمَٰنِ ٱلرَّحِيمِ
Dengan nama Allah Yang Maha Pengasih lagi Maha Penyayang.
Proyek ini telah bersumber terbuka sebagai bentuk sedekah jariyah - semoga Allah memberi reward untuk setiap kontribusi, baik teknis maupun non-teknis dan mereka yang berbagi dengan orang lain.
Aplikasi layar display sholat masjid modern dengan dukungan penuh Bahasa Indonesia, sistem admin yang komprehensif, dan integrasi API MyQuran untuk waktu sholat akurat di seluruh Indonesia. Aplikasi ini berjalan sebagai aplikasi web progresif offline yang kompatibel dengan browser modern.
Versi aplikasi ini menggantikan versi asli yang dibuat bersama dengan East London Mosque.
Komentar tentang mengapa kami membangun versi ini dapat ditemukan di blog berikut: https://medium.com/mosque/design-concept-direction-for-mosque-screens-51c4f9bb82.
Kontributor asli proyek ini dapat ditemukan di sini.
Terima kasih khusus harus diberikan kepada UK Government Digital Service yang menyediakan hari-hari sukarela yang memungkinkan proyek asli menjadi kenyataan.
- Seluruh antarmuka dalam Bahasa Indonesia
- Nama sholat dalam bahasa Arab dan Indonesia
- Format tanggal Hijriyah dan Masehi
- Waktu sholat akurat untuk 347+ kota di Indonesia
- Data langsung dari api.myquran.com/v2
- Pemilihan kota dinamis melalui panel admin
- Update otomatis dan cache sistem
- Login aman dengan session management
- Pengaturan informasi masjid (nama, alamat, logo)
- Sistem pengumuman dengan running text
- Pemilihan lokasi/kota dari 347+ pilihan
- Pengaturan tampilan dan animasi
- Perubahan real-time langsung ke layar utama
- Tampilan optimal untuk TV Full HD 1080p
- Mode TV dan mobile yang responsif
- Progressive Web App (PWA) support
- Offline functionality
- Running text marquee yang dapat dikustomisasi
- Animasi, warna, dan ukuran teks fleksibel
- Multiple pengumuman dengan manajemen mudah
- Integrasi real-time dengan layar display
- Perubahan admin langsung terlihat di layar utama
- Custom event system untuk sinkronisasi data
- Cache management yang optimal
Untuk melacak fitur yang diimplementasikan dan dalam jalur pipa, silakan lihat papan proyek kami: https://github.com/orgs/MosqueOS/projects/1/views/1
Jika Anda ingin meminta fitur baru, silakan ajukan masalah di repo ini dengan deskripsi apa yang Anda inginkan.
Anda dapat melihat demo yang berfungsi di sini: https://mosque-prayer-display-screen.vercel.app/
Semua kode ada di sini: https://github.com/MosqueOS/Mosque-Prayer-Display-Screen
- Node.js (versi 18 atau lebih tinggi)
- npm atau yarn
- Browser modern dengan dukungan JavaScript
git clone https://github.com/your-username/display-screen-masjid.git
cd display-screen-masjidnpm installnpm run devAplikasi akan berjalan di http://localhost:3001 (atau port lain jika 3001 digunakan).
- Buka Panel Admin: Kunjungi
http://localhost:3001/admin - Login: Gunakan kredensial default:
- Username:
admin - Password:
admin123 - Penting: Ganti password ini di production!
- Username:
- Konfigurasi Masjid:
- Buka tab "Informasi Masjid" untuk mengubah nama dan alamat
- Buka tab "Pilih Lokasi Masjid" untuk memilih kota Anda
- Buka tab "Pengumuman" untuk mengelola pengumuman running text
- Buka tab "Pengaturan" untuk menyesuaikan tampilan
Aplikasi sudah terintegrasi dengan API MyQuran untuk waktu sholat otomatis:
- 347+ kota tersedia di seluruh Indonesia
- Data tersimpan dalam cache 24 jam untuk performa
- Update otomatis tanpa konfigurasi manual
Catatan: Tidak diperlukan setup spreadsheet atau API endpoint manual seperti versi sebelumnya.
-
Push ke GitHub:
git add . git commit -m "Initial setup of mosque display system" git push origin main
-
Deploy ke Vercel:
- Kunjungi vercel.com
- Import repository GitHub Anda
- Vercel akan otomatis mendeteksi ini sebagai aplikasi Next.js
- Klik "Deploy"
# Build untuk production
npm run build
# Jalankan production server
npm startSetelah aplikasi Anda dideploy:
- Uji tampilan utama di
http://your-domain.com - Uji panel admin di
http://your-domain.com/admin - Pastikan berfungsi di TV yang akan digunakan untuk masjid
- Aplikasi dioptimalkan untuk layar TV Full HD 1080p
PENTING: Sebelum production, pastikan untuk:
- Ganti default admin password (
admin123) - Konfigurasi kota lokasi masjid Anda
- Sesuaikan nama dan alamat masjid
- Atur pengumuman yang diinginkan
Anda dapat mengatur domain kustom seperti: prayertime.mymosque.com
Jika Anda ingin memperbarui domain Anda, Anda dapat melakukannya dengan mengikuti dokumentasi Vercel: https://vercel.com/docs/projects/domains/add-a-domain
| KUNCI | NILAI | DEFAULT | DESKRIPSI |
|---|---|---|---|
| NEXT_PUBLIC_APP_URL | http://localhost:3001 | http://localhost:3001 | URL dasar aplikasi |
| UPCOMING_PRAYER_DAY | 3 | 3 hari mendatang ditampilkan di slider | Berapa banyak hari mendatang yang ditampilkan di bagian geser |
| SLIDE_TRANSITION_TIME | 7 | 7 detik | Berapa lama setiap slide ditampilkan di bagian geser |
Catatan: Versi ini tidak memerlukan MOSQUE_API_ENDPOINT karena menggunakan API MyQuran langsung.
display-screen-masjid/
├── app/ # Next.js App Router
│ ├── admin/ # Panel admin routes
│ ├── login/ # Login page
│ └── page.tsx # Main display page
├── components/ # React components
│ ├── Admin/ # Admin panel components
│ ├── AnnouncementMarquee/
│ ├── Blackout/
│ ├── Clock/
│ ├── PrayerTimes/
│ └── ...
├── services/ # API services
│ ├── MyQuranService.ts # MyQuran API integration
│ ├── AdminService.ts # Admin authentication & data
│ └── EnhancedMosqueDataService.ts
├── types/ # TypeScript type definitions
├── constants/ # Constants dan translations
└── public/ # Static assets
- Framework: Next.js 15 dengan App Router
- Bahasa: TypeScript
- Styling: Tailwind CSS
- API: MyQuran API (api.myquran.com/v2)
- State Management: React Hooks + Custom Events
- Authentication: LocalStorage dengan session management
- Cache: localStorage dengan 24-hour expiry
- PWA: Service Worker support
cp .env.local.example .env.localnpm installnpm run devRaspberry Pi (RPI) adalah cara mudah untuk menjalankan layar, layar tidak memerlukan terlalu banyak daya - komputer ringan seperti RPI sudah cukup.
Anda dapat membelinya dari pemasok resmi: https://www.raspberrypi.com/products/
Kami sarankan Anda membeli casing dengan kipas atau solusi pendinginan panas - layar akan berjalan sepanjang hari jadi baik untuk memiliki solusi pendinginan yang baik.
- Install Raspberry Pi OS pada Kartu SD
- Install chromium-browser - Lakukan langkah ini hanya jika Anda tidak memiliki Chromium
- Buka Terminal
cd .configsudo mkdir -p lxsession/LXDE-pisudo nano lxsession/LXDE-pi/autostart- Tambahkan baris berikut di akhir file:
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
point-rpi
@chromium-browser --noerrdialogs --noerrors --disable-session-crashed-bubble --disable-features=InfiniteSessionRestore --disable-infobars --start-fullscreen --start-maximized --app=https://mosque-prayer-display-screen.vercel.app(pastikan untuk mengganti --app=https://mosque-prayer-display-screen.vercel.app dengan URL Anda)
sudo reboot- Setelah reboot, itu harus mulai dengan start-up ke layar Anda secara otomatis.
- Ganti default admin password (
admin123) - Gunakan HTTPS di production
- Validasi input di panel admin
- Rate limiting untuk API calls
- Regular security updates
- Username:
admin - Password:
admin123
PENTING: Selalu ganti password default di production environment!
- Solusi: Refresh browser dan buka console untuk debugging logs
- Check: Pastikan tidak ada error JavaScript di console
- Solusi: Tunggu 24 jam untuk cache reset atau clear browser cache
- Check: Koneksi internet harus stabil
- Solusi: Clear localStorage dan refresh browser
- Check: Username dan password yang benar
- Solusi: Check browser console untuk error details
- Check: Pastikan Node.js versi 18+ terinstall
Aktifkan debug logging dengan membuka browser developer console. Logs akan menampilkan:
- City ID yang digunakan untuk API calls
- Cache status
- Error details jika ada
Kontribusi sangat welcome! Silakan:
- Fork repository
- Buat feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push ke branch (
git push origin feature/amazing-feature) - Buka Pull Request
- Gunakan TypeScript untuk type safety
- Follow existing code style
- Add logging untuk debugging
- Test di multiple browsers
Proyek ini dilisensikan di bawah MIT License - lihat file LICENSE untuk details.
- Bergabung dengan channel Discord kami: https://discord.gg/CG7frj2
- Ajukan issue di GitHub untuk bug reports dan feature requests
Untuk dukungan berbayar dan setup kustom, hubungi:
- Email: mosque.screens786@gmail.com
💡 Tips: Simpan link README ini untuk referensi setup dan maintenance masa depan.


