A large-format mosque prayer times display built with React 19, TypeScript, and Vite. Designed for 16:9 screens (TVs / monitors), the app shows the current time, Hijri date, live prayer countdowns (Adhan → Iqamah logic), a responsive prayer table, an announcement marquee, and an optional sponsor ad rail.
This README provides a short overview. Developer-facing technical details (development, build, linting, testing, architecture) are in CONTRIBUTING.md.
- Configuration-first:
mosque.config.tsis the single source of runtime configuration (coordinates, calculation method, iqamah offsets, sponsors, announcements, and mosque metadata). - Local caching: prayer times are fetched from the AlAdhan API and cached in
localStorage(one entry per day). - Large-screen UI: layout optimized for 16:9; left stage shows clock and prayer table, right rail shows ads (hidden when
showSponsorsisfalse).
- Configuration:
mosque.config.ts - Settings context / persistence:
src/context/SettingsContext.tsx - Prayer timings hook:
src/hooks/usePrayerTimes.ts - Translations:
src/translations/en.ts,src/translations/fr.ts(re-exported fromsrc/i18n.ts)
- Node.js 18+ is recommended.
- Install dependencies:
npm ci # use in CI
# or
npm install- Raspberry Pi kiosk install:
curl -fsSL https://raw.githubusercontent.com/As-Salam-Mosque/divine-display/main/scripts/install.sh | bashFor developer instructions (start dev server, build, lint, testing tips, architecture, and contribution workflow) see CONTRIBUTING.md.