About this project

The «Holy Quran» application is an open-source Arabic project under the MIT license, enabling users to read, listen to, search, and access interpretations of the Quran via web browsers and Android devices. The current version is 3.1.20, with a debug-signed APK for field testing and a web version hosted on GitHub Pages. The project supports eight interface languages (Arabic, English, French, German, Russian, Turkish, Malay, and Indonesian) with RTL support for Arabic. For reading, the app displays 114 surahs in Uthmanic script sourced from AlQuran.cloud, featuring surah navigation, last-position saving, current verse highlighting, 15 prostration marks, and 30 juz dividers. Users can control font size (16–45px), font type (Amiri, Scheherazade New, Reem Kufi), and line spacing. It includes five translations, 18 colored tajweed rules with day/night modes, a memorization mode that hides text, and a «Memorization Room» with a curtain feature and adjustable playback speed/repetition. The official King Fahd Complex Uthmanic font is available for surah mode, while page mode uses QCF4. Offline Mushaf data for 604 pages can be optionally downloaded after SHA-256 checksum verification. Listening features include over 30 reciters and two audio sources: per-verse API audio and full surah MP3s from mp3quran.net with word-by-word highlighting via quran.com. It offers seamless playback between surahs, repeat modes (off, verse, surah, custom range), a sleep timer (1–180 mins), speed control, MediaSession integration for lock screen controls, and a completion notification. The offline package stores text, translations, tajweed data, QCF4 fonts, and selected audio in IndexedDB with a 200MB limit and LRU eviction. Search functionality covers 6,236 verses with support for diacritics, result highlighting, prefix suggestions, a history of the last ten searches, and voice search via Web Speech API. Tafsir includes six versions (Al-Muyassar, Ibn Kathir, Al-Tabari, Al-Saadi, Al-Baghawi, and Al-Qurtubi) with tiered loading from local to IndexedDB to API. A «Contemplation» feature provides three reflective questions per verse for personal meditation, operating entirely offline. «Mushaf Mode» renders QCF V4 fonts on Canvas across 604 pages with word-level tajweed coloring. «Display Mode» offers full-screen views with solid, natural, or mood-based backgrounds, including Canvas scenes (stars, waves, aurora, particles, rain) and support for local HD video backgrounds with Mishary Alafasy audio. Additional features include prayer times via Aladhan (six times, Adhan alerts, Umm al-Qura Hijri calendar, and Qibla compass), morning/evening and custom Adhkar with counters, favorites/bookmarks (exportable as text or JSON), and four display themes including deep night mode. It supports native sharing via Capacitor Share or Web Share API and accessibility features such as focus traps, ARIA live regions, and high contrast. Technically, the project uses TypeScript 6.0 (strict mode), Vite 8 with LightningCSS, vite-plugin-pwa (Workbox), and Capacitor 8 for Android. State management is built on a custom Proxy-based system without external frameworks, using localStorage and three IndexedDB databases (QuranAppDB, QuranAudioCacheDB, QuranTafsirDB). External APIs include AlQuran.cloud, Aladhan, jsDelivr, mp3quran.net, and quran.com. CI/CD pipelines include linting, type checking, unit tests (min 80% coverage), Playwright E2E tests across four environments, CodeQL, OWASP ZAP, Lighthouse CI, and axe-core WCAG compliance checks. The repository reports 3,812 unit tests and 284 UI test cases, with internal Lighthouse scores of 93 for performance, 100 for accessibility, 96 for best practices, and 91 for SEO. Local execution requires Node.js 22 or newer.