À propos du projet

L'application « Al-Quran Al-Kareem » est un projet arabe open-source sous licence MIT, permettant la lecture, l'écoute, la recherche et la consultation de l'exégèse du Coran, disponible via navigateur web et sur Android. La version actuelle mentionnée dans le dépôt est la 3.1.20, avec un fichier APK signé Debug pour les tests et une version web publiée sur GitHub Pages. Le projet supporte huit langues d'interface : arabe, anglais, français, allemand, russe, turc, malais et indonésien, avec un support RTL pour l'arabe. Pour la lecture, l'application affiche 114 sourates en calligraphie Othmanique via AlQuran.cloud, avec navigation entre les sourates, sauvegarde de la dernière position, mise en évidence du verset actuel, 15 marques de prosternation, des séparateurs pour les trente Juz et une barre de progression liée au défilement. Elle permet de contrôler la taille de la police (16–45 px), le type (Amiri, Scheherazade New, Reem Kufi), l'interligne, cinq traductions, 18 règles de Tajwid colorées avec modes jour et nuit, ainsi qu'un mode mémorisation masquant le texte. Une « salle de mémorisation » avec rideau permet de révéler le verset à la demande avec réglages de lecture, vitesse et répétition. L'option de la police Othmanique officielle du Complexe du Roi Fahd est applicable au mode sourate, tandis que le mode page utilise QCF4, avec des données hors ligne pour 604 pages téléchargeables après vérification de l'empreinte SHA-256. L'écoute inclut plus de 30 récitants et deux sources audio : un flux par verset via API et des fichiers MP3 complets via mp3quran.net, avec un surlignage mot à mot via quran.com. Elle propose une lecture continue entre les sourates, des modes de répétition (arrêt, verset, sourate, plage personnalisée), un minuteur de mise en veille (1 à 180 min), un contrôle de vitesse, une intégration MediaSession pour l'écran de verrouillage, des tentatives de reconnexion automatique, un visualiseur audio sur Canvas, et une notification de fin de lecture complète. Le pack hors ligne stocke le texte, les traductions, le Tajwid, les polices QCF4 et l'audio du récitant choisi dans IndexedDB (limite 200 Mo avec éviction LRU), avec statistiques de stockage et suppression sélective. La recherche dispose d'un moteur couvrant 6 236 versets, gérant le texte avec ou sans voyelles, avec mise en évidence des résultats, suggestions de préfixes, historique des dix dernières recherches, recherche vocale via Web Speech API et clavier arabe à l'écran. Les exégèses comprennent six versions (Al-Muyassar, Ibn Kathir, Al-Tabari, Al-Saadi, Al-Baghawi et Al-Qurtubi) avec chargement progressif et mise en cache dans QuranTafsirDB. La fonction « Méditation sur le verset » propose trois questions de réflexion locales sans compte ni IA, précisant qu'il s'agit d'un outil de méditation personnelle et non d'une exégèse officielle. Le « Mode Mushaf » affiche les polices QCF V4 sur Canvas sur 604 pages avec coloration Tajwid et interaction tactile pour la lecture et l'exégèse. Le « Mode Affichage » propose un plein écran avec des arrière-plans unis, naturels, d'humeur, temporels ou des scènes Canvas (étoiles, vagues, aurores, particules, pluie), avec possibilité d'ajouter une image large ou une vidéo HD locale avec l'audio de Mishary Al-Afasy, le traitement étant local. L'application est complétée par les horaires de prière via Aladhan (six temps, alertes Adhan, date hégirienne Umm al-Qura et boussole Qibla), des invocations (Adhkar) du matin et du soir avec compteur et notifications, des favoris et marque-pages exportables en texte ou JSON, des statistiques de lecture, quatre thèmes d'affichage (dont un mode nuit profond), et un partage natif via Capacitor Share ou Web Share API. L'accessibilité est assurée par des pièges à focus, des zones ARIA live, des liens de saut de contenu et le respect de la réduction des mouvements et du contraste élevé. Techniquement, le projet repose sur TypeScript 6.0 (mode strict), Vite 8 avec LightningCSS, vite-plugin-pwa (Workbox) pour la PWA, et Capacitor 8 pour Android. La gestion d'état est réactive basée sur Proxy sans framework externe, avec stockage dans localStorage et trois bases IndexedDB (QuranAppDB, QuranAudioCacheDB, QuranTafsirDB). Les API externes utilisées sont AlQuran.cloud, Aladhan, jsDelivr, mp3quran.net et quran.com. Le pipeline CI/CD inclut linting, vérification des types, tests unitaires (couverture ≥ 80%), tests Playwright (chromium, firefox, webkit, mobile-chrome), CodeQL, scan OWASP ZAP, Lighthouse CI, axe-core (sans violation WCAG), surveillance de la taille du bundle et déploiement automatique lors d'un tag. Le dépôt mentionne 3 812 tests unitaires et 284 cas de tests d'interface. Les scores Lighthouse internes sont de 93 pour la performance, 100 pour l'accessibilité, 96 pour les meilleures pratiques et 91 pour le SEO. Pour l'exécution locale, Node.js 22 ou plus récent est requis. Les utilisateurs finaux peuvent simplement télécharger le fichier APK sans avoir à compiler le projet. Le dépôt fournit également un guide d'évaluation technique détaillant les fonctionnalités hors ligne et les limitations connues.