Skip to content

Repository files navigation

Quran Plus

Dibuat oleh: Adrian Syah Abidin

Quran Plus adalah aplikasi Android offline-first berbasis Jetpack Compose, Clean Architecture, MVVM, Room, FTS5, Koin, ONNX Runtime, LiteRT-LM, SAF, WorkManager, dan sqlite-vec.

Status implementasi

  • Quran: 114 surah, 6.236 ayat, tajwid AnnotatedString, waqaf, marker akhir ayat, pencarian FTS5, bookmark, dan reader responsive.
  • Word-by-word: 77.429 unit sumber untuk 6.236 ayat. Arabic, transliterasi Latin, dan makna English tersedia per kata dari Islamic.app Word API, yang mendokumentasikan sumber Quran.com API v4. Unit komposit seperti إِلْ يَاسِينَ tetap ditampilkan sebagai satu makna sumber; transliterasi tidak dipotong secara heuristik. Terjemahan Indonesia belum dibundel karena sumber berlisensinya belum diverifikasi.
  • Tahsin: 54 materi Room-backed tentang makharij, sifat huruf, hukum tajwid, mad, dan waqaf. Contoh ayat diperbarui oleh scripts/refresh_tahsin.py dari teks Quran yang ada di database.
  • Hadist: APK hanya membawa schema dan metadata kosong; record tidak dibundel. Tombol Download bundle Hadist mengambil arsip 9 koleksi Arab–Indonesia dari gadingnst/hadith-api, menyimpannya di SAF, mengimpor record nyata ke Room, dan memasukkannya ke corpus RAG. Section/list Kutubus Sittah dan Hadis Lainnya, pencarian, serta importer JSON tetap tersedia; katalog kosong sampai user mengunduh bundle.
  • RAG: index sqlite-vec memakai embedding nyata untuk Quran, Hadist hasil bundle/impor, dan dokumen pengguna. Teks Arab, translation_id Indonesia, dan English yang tersedia ikut di-embed. Chunking memakai 512 kata dengan overlap 50; retrieval default top-k 5. Index dibangun ulang setelah import/restore dan saat layar Tanya AI dibuka.
  • AI: jawaban hanya dibuat ketika model chatbot, embedder, corpus, dan index siap. Coverage index wajib memuat Quran serta setiap sumber Hadist/dokumen yang sudah tersimpan; jika belum, UI menampilkan MODEL_UNAVAILABLE, EMBEDDER_UNAVAILABLE, INDEX_UNAVAILABLE, atau CORPUS_UNAVAILABLE secara jujur.

Model yang dapat diunduh

Katalog memakai manifest minimal dengan URL HTTPS yang dipin, ukuran artifact, format/runtime, dan SHA-256. Checksum hanya dipakai untuk memastikan unduhan tidak korup atau tertukar.

  • Qwen 2.5 1.5B Instruct LiteRT-LM — source, 1.567.364.648 bytes, SHA-256 98c289e1c43cc592ac535594d5de4bdde449e8dc012ac66909064b6880f8b717.
  • Alif Islamic v4 Base LiteRT-LM — source, 946.786.704 bytes, SHA-256 79deeca9f2120c08454ccb09f0399b42d4b3146e8d3fdc0bde4cfa2787f2bbaa. Model khusus tanya jawab Islami dan Fiqih berbasis task model LiteRT.
  • Gemma 4 E2B IT (instruction-tuned) LiteRT-LM — source, 2.588.147.712 bytes, SHA-256 181938105e0eefd105961417e8da75903eacda102c4fce9ce90f50b97139a63c. Penggunaan Gemma mengikuti Gemma Terms of Use.
  • all-MiniLM-L6-v2 ONNX untuk RAG — source, 23.026.053 bytes, 384 dimensi, SHA-256 4278337fd0ff3c68bfb6291042cad8ab363e1d9fbc43dcb499fe91c871902474.

Audio Quran: unduh dan putar offline

Audio murottal diunduh per ayat dari katalog EveryAyah. Implementasi memakai folder qari yang sudah dipetakan ke URL HTTPS nyata, manifest 000_checksum.md5 dari sumber, HTTP Range untuk melanjutkan file .tmp, WorkManager dengan batas retry jaringan, lalu publish atomik setelah MD5 cocok. Dokumentasi Quran Foundation juga mendokumentasikan pola URL audio per ayat yang digunakan oleh layanan Quran.

  • Qari tersedia: Mishary Alafasy, Mahmud Khalil Al-Husary, dan Abdurrahman As-Sudais.
  • Audio tidak dibundel ke APK. Pilih surah pada More → Audio, tunggu status Audio surah selesai diunduh, lalu buka ayat dan pilih Putar Audio Murottal.
  • File terverifikasi disimpan sebagai cache app-private di filesDir/audio; cache ini dapat dihapus dari Audio Manager dan akan ikut terhapus saat aplikasi di-uninstall. Model AI dan dokumen RAG memiliki alur SAF terpisah agar tetap berada di folder pengguna.
  • EveryAyah menjadi sumber rekaman dan checksum; aplikasi tidak mengubah atau mengklaim lisensi rekaman tersebut. Hak penggunaan tetap mengikuti sumber dan qari.

Folder SAF dan uninstall

Pilih folder melalui ACTION_OPEN_DOCUMENT_TREE pada Settings. Aplikasi membuat:

QuranPlus/
├── models/
├── rag/source/
│   └── hadith/
├── rag/index/
└── manifests/

Model, bundle Hadist, dan dokumen RAG yang sudah dipublish berada di folder milik pengguna, bukan hanya filesDir, sehingga tidak ikut terhapus ketika aplikasi di-uninstall. Setelah install ulang, pilih folder yang sama untuk relink dan memulihkan Hadist ke Room; izin URI harus diberikan ulang bila Android sudah mencabut grant aplikasi. Unduhan memakai file sementara, HTTP Range, dan WorkManager; model tetap diverifikasi SHA-256, sedangkan bundle Hadist divalidasi berdasarkan struktur buku JSON sumber sebelum diimpor.

Materi Tahsin

Materi ringkas disusun untuk pemula dari sumber berikut:

Tidak ada file audio Tahsin yang diklaim tersedia. Tombol audio hanya aktif untuk audio Quran yang benar-benar tersedia dari AudioPlayerManager.

Build dan test

.\gradlew.bat :shared:compileDebugKotlinAndroid --no-daemon --console=plain
.\gradlew.bat :app:compileDebugKotlin --no-daemon --console=plain
.\gradlew.bat :app:testDebugUnitTest --no-daemon --console=plain
.\gradlew.bat :app:lintDebug --no-daemon --console=plain
.\gradlew.bat :app:assembleDebug --no-daemon --console=plain
.\gradlew.bat :app:connectedDebugAndroidTest --no-daemon --console=plain

Acceptance Android terakhir dijalankan pada RRCN3008VYE / Samsung SM-G988B Android 13. Device QSWSEMRKNFZ9LJRC tidak terhubung dan tidak diklaim lulus. Model chatbot, model embedding, import corpus Hadist, indexing penuh, audio, dan seluruh kelas ukuran layar tetap membutuhkan asset/prasyarat nyata masing-masing.

Preview device

Screenshot di bawah harus diregenerasi dari APK/commit terbaru; screenshot bukan bukti model atau corpus sudah siap.

Quran home Reader Word-by-word
Quran home Reader Word-by-word
Hadist AI ModelGate
Hadist AI ModelGate

Security

Jangan commit docs/, reference project, credential, raw model weights, archive, atau database hasil import pengguna. Sebelum delivery, review staged diff, jalankan git diff --cached --check, secret scan, dan verifikasi SHA remote.

RTK, CAVEMAN, dan PONYTAIL adalah authoring guidance sesuai AGENTS.md, bukan dependency runtime.

About

Offline-first Android Quran, Hadith, Tahsin, and on-device AI/RAG app built with Jetpack Compose and Kotlin.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages