Imported from SchumacherFarad/cepte-islam (
AGENTS.md). Install upstream withnpx skills add SchumacherFarad/cepte-islam. Copyright stays with the author.
Cepte Δ°slam - Project Specification
π± Project Overview
- App Name: Cepte Δ°slam (Islam in Your Pocket)
- Type: Cross-platform Islamic Mobile Application
- Core Features: Prayer Times, Quran (Read/Audio), Dhikr/Adhkar, Qibla Direction
- Target Audience: Turkish Muslims (primary), English speakers (secondary)
- Platforms: Android, Web, Desktop (iOS later)
- Timeline: 1-3 months MVP
π Tech Stack
| Category | Choice |
|---|---|
| Framework | Flutter |
| Language | Dart |
| State Management | Riverpod (recommended) or Bloc |
| Local Storage | SQLite + SharedPreferences |
| HTTP Client | Dio |
| Architecture | Clean Architecture (Data/Domain/Presentation) |
| Backend | None (API-based for now) |
| Ads | AdMob |
| Analytics/Crash | To be added later |
π APIs to Use
1. Prayer Times
- Primary: AlAdhan.com (https://aladhan.com/prayer-times-api)
- Documentation: https://aladhan.com/prayer-times-api
- Endpoints:
GET /timings/{date}?latitude={lat}&longitude={lng}&method={method}- Methods: 4 (Umm al-Qura), 5 (Egyptian), 7 (Muslim World League)
- No API key required
2. Quran
- Primary: AlQuran.cloud (https://api.alquran.cloud)
- Turkish Translation: Diyanet (tr.diyanet)
- Audio: Available via API
- Endpoints:
GET /surah- All surahsGET /surah/{id}- Specific surahGET /surah/{id}/{verse}- Specific verseGET /surah/{id}/tr.diyanet- Turkish translation
- Audio:
GET /surah/{reciter}/{surah}- Audio recitations
3. Qibla Direction
- Primary: Calculated locally using formula or AlAdhan
- Alternative: UmmahAPI (https://ummahapi.com/api/qibla)
4. Dhikr/Adhkar
- Source: Local database (Hisnul Muslim data)
- Data: JSON files in assets/data/
π¨ Design Specification
Design Reference
- Primary Reference: Diyanet Quran (https://kuran.diyanet.gov.tr/mushaf_v2)
- The Quran reader (Mushaf and Surah detail) follows the clean, modern Diyanet style
Color Palette
| Color | Hex | Usage |
|---|---|---|
| Primary Green | #2E7D32 | Main buttons, headers |
| Light Green | #4CAF50 | Accents, highlights |
| Dark Green | #1B5E20 | Dark mode primary |
| Background Light | #FAFAFA | Light theme background |
| Background Dark | #121212 | Dark theme background |
| Surface Light | #FFFFFF | Cards, dialogs |
| Surface Dark | #1E1E1E | Dark theme surfaces |
| Text Primary | #212121 | Main text (light mode) |
| Text Secondary | #757575 | Subtitles |
| Gold Accent | #FFD700 | Special highlights |
Typography
- Font Family: Poppins (Google Fonts)
- Headings: Poppins SemiBold/Bold
- Body: Poppins Regular
- Quran Arabic: Amiri or Uthmani Font
- Sizes:
- H1: 28sp
- H2: 24sp
- H3: 20sp
- Body: 16sp
- Caption: 12sp
Icons
- Style: Material Icons + Custom Islamic Icons (mixed)
- Library: flutter_svg for custom icons
UI Style
- Design: Minimalist with subtle Islamic geometric patterns
- Animations: Minimal - smooth transitions but not distracting
- Dark Mode: Manual toggle + System follow option
- Quran Reader: Clean, modern design similar to Diyanet website:
- Reading mode selector (Kur'an + Meal, Kur'an, Meal)
- Quick navigation (CΓΌz, Sure selectors)
- Page slider with page number display
- Clean verse display with Arabic numerals for verse numbers
- Simple translation display below Arabic text
π Project Structure
cepte_islam/
βββ lib/
β βββ main.dart
β βββ app.dart
β βββ core/
β β βββ constants/
β β β βββ app_colors.dart
β β β βββ app_strings.dart
β β β βββ api_constants.dart
β β βββ theme/
β β β βββ app_theme.dart
β β β βββ app_text_styles.dart
β β βββ utils/
β β β βββ location_helper.dart
β β β βββ date_utils.dart
β β βββ widgets/
β β βββ common_widgets.dart
β βββ data/
β β βββ datasources/
β β β βββ remote/
β β β β βββ prayer_times_api.dart
β β β β βββ quran_api.dart
β β β βββ local/
β β β βββ dhikr_local_datasource.dart
β β β βββ database_helper.dart
β β βββ models/
β β β βββ prayer_times_model.dart
β β β βββ surah_model.dart
β β β βββ dhikr_model.dart
β β βββ repositories/
β β βββ prayer_times_repository.dart
β β βββ quran_repository.dart
β β βββ dhikr_repository.dart
β βββ features/
β β βββ prayer_times/
β β β βββ presentation/
β β β β βββ pages/
β β β β β βββ prayer_times_page.dart
β β β β βββ widgets/
β β β β βββ prayer_card.dart
β β β βββ providers/
β β β βββ prayer_times_provider.dart
β β βββ quran/
β β β βββ presentation/
β β β β βββ pages/
β β β β β βββ quran_home_page.dart
β β β β β βββ surah_detail_page.dart
β β β β βββ widgets/
β β β β βββ surah_tile.dart
β β β βββ providers/
β β β βββ quran_provider.dart
β β βββ dhikr/
β β β βββ presentation/
β β β β βββ pages/
β β β β β βββ dhikr_page.dart
β β β β βββ widgets/
β β β β βββ dhikr_card.dart
β β β βββ providers/
β β β βββ dhikr_provider.dart
β β βββ qibla/
β β βββ presentation/
β β β βββ pages/
β β β βββ qibla_page.dart
β β βββ providers/
β β βββ qibla_provider.dart
β βββ l10n/
β βββ app_tr.arb
β βββ app_en.arb
βββ assets/
β βββ data/
β β βββ dhikr.json
β βββ fonts/
β β βββ amiri/
β βββ icons/
βββ pubspec.yaml
β Features Priority
Phase 1 - MVP (v1.0)
-
Prayer Times
- Location-based prayer times
- Manual city selection
- Prayer time notifications
- Daily prayer schedule view
-
Quran
- Surah list
- Verse reading with Turkish translation
- Audio playback (streaming)
- Last read position (local storage)
-
Dhikr/Adhkar
- Morning and evening adhkar
- Category-based listing
- Mark as read
-
Qibla Direction
- Compass-based direction
- Degree display
Phase 2 (v1.1+)
- Hadith collections (Turkish)
- Tasbih (basic)
- iOS support
π Development Phases
Phase 1: Setup (Week 1)
- Flutter project init
- Theme and routing setup
- Dependencies (dio, riverpod, sqflite, etc.)
- Clean architecture folder structure
- API service classes
Phase 2: Prayer Times (Week 2)
- Location permission handling
- AlAdhan API integration
- Prayer times UI
- City selector
- Notification system
Phase 3: Quran (Week 3-4)
- AlQuran.cloud API integration
- Surah listing
- Verse detail page
- Audio player integration
- Last read tracking (local DB)
Phase 4: Dhikr & Qibla (Week 5)
- Local dhikr database
- Dhikr UI
- Qibla compass implementation
Phase 5: Polish (Week 6)
- Dark mode
- Turkish/English localization
- Offline caching
- Performance optimization
Phase 6: Release (Week 7-12)
- AdMob integration
- Play Store build
- Web build
- Desktop build
π¦ Required Packages (pubspec.yaml)
dependencies:
flutter:
sdk: flutter
# State Management
flutter_riverpod: ^2.4.9
riverpod_annotation: ^2.3.3
# HTTP
dio: ^5.4.0
# Local Storage
sqflite: ^2.3.2
shared_preferences: ^2.2.2
path: ^1.8.3
# Location
geolocator: ^11.0.0
geocoding: ^2.1.1
# UI
flutter_svg: ^2.0.9
google_fonts: ^6.1.0
flutter_compass: ^0.7.0
# Audio
just_audio: ^0.9.36
# Notifications
flutter_local_notifications: ^16.3.2
timezone: ^0.9.2
# Utils
intl: ^0.19.0
connectivity_plus: ^5.0.2
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^3.0.1
build_runner: ^2.4.8
riverpod_generator: ^2.3.9
π§ Environment Setup
Linux (Arch)
# Install Flutter
sudo pacman -S git curl unzip xz-utils zip
cd ~
git clone https://github.com/flutter/flutter.git -b stable --depth 1
echo 'export PATH="$PATH:$HOME/flutter/bin"' >> ~/.zshrc
source ~/.zshrc
# Install Android SDK
sudo pacman -S android-sdk android-sdk-platform-tools android-sdk-build-tools
# OR use AUR
yay -S flutter
# Verify
flutter --version
flutter doctor
π Running the Project
# Get dependencies
flutter pub get
# Run on connected device
flutter run
# Build APK
flutter build apk --debug
flutter build apk --release
# Build Web
flutter build web
# Build Desktop
flutter build linux
π Next Steps (Immediate Actions)
- Install Flutter (see Environment Setup above)
- Create Flutter project:
flutter create cepte_islam - Set up pubspec.yaml with dependencies
- Create folder structure
- Implement core theme and constants
- Start with Prayer Times feature
π API Documentation Links
- AlAdhan Prayer Times: https://aladhan.com/prayer-times-api
- AlQuran Cloud: https://api.alquran.cloud
- Flutter Docs: https://docs.flutter.dev
Last Updated: March 2026 Prepared by: OpenCode AI Assistant