radensaleh/Quran-App
55.8
Adequate · 21 September 2026
3.9k
lines of production code
Dart
with C++
4
measurements over time
What this system is
This system is a Quran reading application built on a clean architecture, featuring a domain layer for managing surahs, verses, and bookmarks. It provides a complete user interface for browsing, reading, and saving content, supported by a modular codebase with shared utilities, dependency injection, and centralized design tokens. The application also includes infrastructure for state management, networking, and local storage.
Features
Add Quran domain layer with data sources, repositories, and use cases
The domain layer for the Quran feature has been implemented, introducing the full data and domain architecture. This includes local and remote data sources for fetching surahs, juz, and verse details, as well as local storage for last-read surahs and bookmarked verses. The repository layer aggregates these data sources to provide a unified interface for the domain logic. Additionally, use cases have been added to encapsulate specific business rules, such as saving or removing bookmarks and tracking the last read position.
domains/quran · high confidence
Add bookmark, surah detail, and home screen features
This change introduces the core UI and logic for the Quran app's main features. The home screen now displays a list of surahs and the last read surah. Users can view detailed information about each surah, including verses and audio playback. Additionally, users can bookmark specific verses, with the ability to view and manage their saved verses in a dedicated bookmark screen.
(repo-wide) · high confidence
Added core networking and dependency injection setup
The shared\_libraries/core module now includes a new core library entry point, a dependency injection registration for the HTTP client, and the network stack. Specifically, a dependency injection setup registers a lazy singleton for Dio and DioHandler, with the latter configured with a base URL of 'https://jsonplaceholder.typicode.com'. The network layer introduces a DioHandler that sets connection/receive timeouts (50s/30s) and default JSON headers, alongside an ApiInterceptors class that logs request/response details for debugging.
_shared\libraries/core · high confidence
Introduce shared libraries for common utilities and dependency re-exports
The codebase now includes a new shared\_libraries/common module that provides reusable utilities, including a ViewData state management class, a UseCase base class, error handling, navigation helpers, route observers, and a preference settings provider. Additionally, a shared\_libraries/dependencies module has been added to centralize re-exports of third-party packages such as flutter\_bloc, dartz, dio, equatable, get\_it, just\_audio, provider, shared\_preferences, show\_up\_animation, and sqflite, allowing other modules to import these dependencies through a single, consistent interface.
_shared\_libraries/common, shared\libraries/dependencies · high confidence
Introduces centralized design tokens and a reusable flash message widget
The resources module now provides a unified visual language for the app. It defines a purple-based color palette and a Poppins text-style system, which are applied to light and dark theme configurations. Additionally, a custom flash notification widget is added, allowing the app to display status-based toast messages (success, failed, or info) with consistent styling.
resources/resources · high confidence
Behavioural changes
Replace Flutter demo app with Quran app architecture and register native plugins
The application entry point in lib/main.dart has been replaced with a full app structure featuring named routes for splash, onboarding, home, detail surah, and bookmark screens, each wired with specific BLoC/Cubit providers and use cases. The main app now uses MultiProvider and Consumer for state management, and registers navigator observers. Additionally, macOS native plugins (audio\_session, just\_audio, path\_provider\_macos, shared\_preferences\_macos, sqflite) are registered in GeneratedPluginRegistrant.swift.
lib, macos · high confidence
Test coverage
Added initial test structure and linting configuration for the Quran domain; Added initial test suite and analysis options for the resources module; Added placeholder unit tests for shared libraries.
Dependencies
Initial dependency manifest and lockfile generation
Added \pubspec.yaml\ and \pubspec.lock\ files for the \dependencies\, \common\, \core\, \resources\, \quran\, \home\, \detail\_surah\, \bookmark\, and \splash\ modules, establishing the project's package structure and resolving transitive dependencies such as \dio\, \flutter\_bloc\, and \sqflite\.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 55 → 56 (+0.5)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 95 (-4.6)
- Architecture 100 → 100 (+0.0)
- Maturity 63 → 67 (+3.8)
- Readiness 24 → 24 (+0.0)
- Security 98 → 98 (+0.5)
- Domain Modelling 100 → 100 (+0.0)
Resolved (10)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High CVE: [GHSA redacted] (domains/quran/pubspec.lock)
- No exposed public API
- Test reliability not included
- The modularization outline lists domains, features, resources, shared_libraries modules but no architecture or design docs are present in the path. (README.md)
- complexity unreadable for .dart, .kt, .swift — churn × complexity hotspots could not be measured
- early-stage repository — too little history to judge knowledge freshness
- git history depth insufficient
- single-maintainer — knowledge-concentration (bus factor) risk
New (16)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- Duplicated block (15 lines × 2) (features/bookmark/lib/presentation/ui/bookmark_screen.dart)
- Duplicated block (15–18 lines × 2) (features/bookmark/lib/presentation/ui/widget/verses_widget.dart)
- Duplicated block (25 lines × 2) (features/bookmark/lib/presentation/ui/widget/verses_widget.dart)
- Duplicated block (26 lines × 2) (features/bookmark/lib/presentation/ui/widget/verses_widget.dart)
- Duplicated block (6 lines × 2) (domains/quran/lib/data/models/detail_surah_dto.dart)
- Duplicated block (6 lines × 2) (domains/quran/lib/data/models/detail_surah_dto.dart)
- Duplicated block (69–70 lines × 2) (features/bookmark/lib/presentation/ui/widget/verses_widget.dart)
- Duplicated block (9 lines × 2) (features/detail_surah/lib/presentation/cubits/bookmark_verses/bookmark_verses_cubit.dart)
- High CVE: [GHSA redacted] (domains/quran/pubspec.lock)
- MethodTooLong: _HomeScreenState.build (features/home/lib/presentation/ui/home_screen.dart)
- MethodTooLong: _VersesWidgetState.build (features/bookmark/lib/presentation/ui/widget/verses_widget.dart)
- MethodTooLong: _VersesWidgetState.build (features/detail_surah/lib/presentation/ui/widget/verses_widget.dart)
- Near-duplicate member pair (110 shared lines) (features/bookmark/lib/presentation/ui/widget/verses_widget.dart)
- No ADRs found
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
radensaleh/Quran-App was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 787ed528b7fe5b3de9cd70b80d3fd36ed2cfc098 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.