Loading repository data…
Loading repository data…
joshuacreator / repository
An offline-first Islamic reference app built with optimised local JSON parsing and caching — no network required after install.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Offline-first Quran, Hadith, and prayer companion — bundled as a Flutter app for Android, iOS, Web, macOS, Windows, and Linux.
Most Islamic apps require a network connection to read Quran or Hadith. This one bundles the complete Quran (114 surahs, ~5MB) and Sahih Al-Bukhari (~2,400 hadiths, ~8MB) as local JSON assets — zero API calls for core content. The trade-off is a larger install size (worth it for availability in areas with poor connectivity).
Feature-grouped presentation layer over a service layer, stitched with Riverpod and GoRouter. Data flows one way: JSON assets → Service → Riverpod Provider → Screen.
lib/
├── main.dart
├── screens/ # 9 feature groups, 28 screens total
│ ├── auth/ # Sign in, sign up, password reset, OTP verification
│ ├── home/ # Dashboard with daily content and feature shortcuts
│ ├── quran/ # Surah index + verse reader with audio controller
│ ├── hadith/ # Collection index + hadith reader
│ ├── dua/ # Category grid + supplication detail
│ ├── prayer/ # Prayer times + mosque details
│ ├── question_and_answer/
│ ├── stories/ # Category grid + PageView reader
│ └── settings/ # Profile, bookmarks, notifications, preferences
├── services/ # JSON loader, daily content engine, audio playback
├── models/ # Surah, Verse, Hadith, DailyVerse, DailyHadith
├── widgets/ # Reusable components by feature and type
└── utils/ # GoRouter config, theme, color constants, asset paths
Key decisions: Riverpod over BLoC (less boilerplate, compile-safe providers), GoRouter with static path/name per screen (type-safe navigation), no DI framework (services exposed as simple Riverpod Provider singletons).
git clone https://github.com/joshuacreator/islam_sunnah.git
cd islam_sunnah
flutter pub get
flutter run -d chrome # Web
flutter run -d ios # iOS simulator
flutter run -d android # Android device/emulator
flutter run -d macos # macOS desktop
No build_runner steps, no environment variables, no API keys.
Tests are not yet written. The project has flutter_test as a dev dependency but no test/ directory. To add and run tests:
flutter test
| Platform | Status | Notes |
|---|---|---|
| Android | ✅ | APK builds, runs on API 21+ |
| iOS | ✅ | Builds with Xcode 15+ |
| Web | ✅ | Full functionality |
| macOS | ✅ | Desktop build |
| Windows | ✅ | Desktop build |
| Linux | ✅ | Desktop build |
toggleBookmark() returns hardcoded values. No local or remote storage is wired.onSearchPressed callbacks are no-ops.Open an issue for bugs or feature requests. PRs welcome — match existing code style (flutter analyze to lint) and add tests where possible. No formal code of conduct yet.
MIT. See LICENSE.