Diyanet İşleri Başkanlığı hutbelerine mobil erişim — çevrimdışı okuma, TTS ve kıble pusulası.
Diyanet'in Cuma hutbelerini SharePoint'ten otomatik kazıyarak veritabanına kaydeder ve kullanıcılara temiz bir mobil arayüz sunar.
| Özellik | Detay |
|---|---|
| 📖 Hutbe Okuma | 50+ hutbe, kategori/yıl filtresi, tam metin arama |
| 🔊 Sesli Okuma (TTS) | Türkçe metin okuma, ayarlanabilir hız |
| ⭐ Favoriler | Çevrimdışı kaydetme (SQLite), kaydırarak silme |
| 🕐 Namaz Vakitleri | GPS veya şehir bazlı, Diyanet metodu (Aladhan API) |
| 🧭 Kıble Pusulası | Manyetik sapma düzeltmeli, gerçek zamanlı |
| 🔔 Bildirimler | Namaz vakti yerel bildirimleri |
| 📱 Onboarding | İlk kullanım akışı, konum izni |
- Türkçe konuşan Müslümanlar
- Cuma hutbelerini mobil cihazdan okumak/dinlemek isteyenler
- Namaz vakitlerini ve kıble yönünü tek uygulamadan takip etmek isteyenler
┌─────────────────────────────────────────────────────┐
│ Flutter Mobile App │
│ HomeScreen · HutbeList · Detail · Qibla · Prayer │
│ Provider · SQLite · flutter_tts │
└───────────────────────┬─────────────────────────────┘
│ HTTP (REST)
┌───────────────────────▼─────────────────────────────┐
│ FastAPI Backend (Render.com) │
│ /hutbeler · /featured · /prayer-times │
│ APScheduler cron — her Cuma 08:00 TR otomatik │
└───────────────────────┬─────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
PostgreSQL Diyanet Aladhan API
(Neon.tech) SharePoint (namaz vakitleri)
Scraper
Phase 1 → SharePoint XHR API → metadata (başlık, tarih, PDF URL)
Phase 2 → pdfplumber crop() → iki sütunlu PDF metin çıkarma
Unicode filtresi → Arapça satırları otomatik ayıklama
- Flutter 3.x
- Python 3.11+
- PostgreSQL (veya Neon.tech ücretsiz)
cd backend
pip install -r requirements.txt
# .env dosyası oluştur
cp .env.example .env
# DATABASE_URL ve ADMIN_SECRET değerlerini doldur
uvicorn app.main:app --reloadcd flutter_app
flutter pub get
flutter runAPI URL:
flutter_app/lib/services/api_service.dartiçinde_prodUrldeğişkenini kendi backend adresinizle güncelleyin.
docker-compose up --buildminber/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI uygulaması, endpointler
│ │ ├── database.py # SQLAlchemy async engine
│ │ ├── models.py # ORM modelleri
│ │ └── scraper/
│ │ └── diyanet.py # SharePoint scraper + PDF parser
│ └── requirements.txt
├── flutter_app/
│ └── lib/
│ ├── screens/ # HomeScreen, HutbeList, Detail, Qibla...
│ ├── services/ # ApiService, LocalDatabase, TTS, Notifications
│ ├── models/ # Hutbe, PrayerTime model sınıfları
│ └── main.dart
├── render.yaml # Render.com deployment
└── docker-compose.yml
| Method | Endpoint | Açıklama |
|---|---|---|
GET |
/api/v1/hutbeler |
Hutbe listesi (sayfalama, filtre, arama) |
GET |
/api/v1/hutbeler/{id} |
Hutbe detayı |
GET |
/api/v1/hutbeler/featured |
Öne çıkan hutbe |
GET |
/api/v1/hutbeler/latest |
Son eklenenler |
GET |
/api/v1/hutbeler/years |
Yıl bazlı istatistik |
POST |
/api/v1/scraper/run |
Scraper tetikle (admin) |
Mobile (Flutter)
flutter_tts— Türkçe metin okumaflutter_compass— Kıble pusulası sensör verisigeolocator— GPS konumusqflite— Çevrimdışı SQLiteflutter_local_notifications— Namaz vakti bildirimlerishared_preferences— Kullanıcı ayarlarılottie— Onboarding animasyonlarıshimmer— İskelet yükleme efekti
Backend (Python)
FastAPI+Uvicorn— Async REST APISQLAlchemy 2.0— Async ORMasyncpg— PostgreSQL sürücüsüpdfplumber— PDF metin çıkarmaAPScheduler— Cron görevi (haftalık scraping)BeautifulSoup+requests— HTML/JSON kazıma
MIT © Aydın Şaşık
Hutbeler, Diyanet İşleri Başkanlığı'nın kamuya açık web sitesinden toplanmaktadır.