Üniversite öğrencileri için tasarlanmış bir Flutter uygulaması. Öğrenme yolculuğunuzu yönetmenize yardımcı olur. Hedef takibi, çalışma seansları, Kaizen kontrolleri, doküman kütüphanesi ve yapay zeka destekli doküman soru-cevap özellikleri içerir.
Mevcut Durum: Mock veri ile UI prototipi. Backend entegrasyonu, RAG (Retrieval-Augmented Generation) ve kimlik doğrulama gelecek sürümler için planlanmıştır.
- Kimlik Doğrulama: Mock email/şifre girişi, sosyal giriş (Google/Apple), kayıt olma
- Ana Sayfa: ÇAlışma ilerlemesi, yaklaşan hedefler ve son aktivitelere genel bakış
- Çalışma Seansları: Pomodoro tarzı çalışma takibi ve odaklanma zamanlayıcıları
- Hedef Yönetimi: Öğrenme hedeflerini belirleyin, takip edin ve görev listesiyle tamamlayın
- Kaizen Kontrolleri: Günlük yansımalar ve sürekli gelişim takibi
- Doküman Kütüphanesi: Çalışma materyallerinizi yükleyin, düzenleyin ve yönetin
- Doküman Soru-Cevap: (Gelecek) RAG kullanarak dokümanlarınızla yapay zeka destekli sohbet
- Profil ve Ayarlar: Kullanıcı tercihleri, uygulama yapılandırması ve çıkış yapma
Bu proje, endişelerin net ayrımı ile özellik-öncelikli (feature-first) mimari desenini takip eder:
lib/
├── app/ # Uygulama seviyesi yapılandırma
│ ├── router/ # GoRouter yapılandırması
│ ├── shell/ # Alt navigasyon ile uygulama kabuğu
│ └── theme/ # Material 3 tema yapılandırması
├── features/ # Özellik modülleri
│ ├── home/ # Ana sayfa
│ ├── study/ # Çalışma seansları
│ ├── goals/ # Hedef yönetimi
│ ├── kaizen/ # Günlük kontroller
│ ├── documents/ # Doküman kütüphanesi
│ ├── coach/ # Yapay zeka koçu (gelecek)
│ └── profile/ # Kullanıcı profili
├── shared/ # Paylaşılan kaynaklar
│ ├── data/ # Mock veri deposu ve sağlayıcılar
│ ├── models/ # Veri modelleri
│ └── widgets/ # Yeniden kullanılabilir UI bileşenleri
└── core/ # Temel yardımcılar
├── constants/ # Uygulama genelinde sabitler
└── utils/ # Yardımcı fonksiyonlar
Detaylı mimari bilgisi için docs/ARCHITECTURE.md dosyasına bakınız.
- Flutter SDK: 3.9.2 veya üzeri (stable kanal önerilir)
- Dart SDK: Flutter ile birlikte gelir
- IDE: VS Code (önerilir) veya Android Studio
- Platform Desteği: Desktop/web geliştirme için macOS, Windows veya Linux
Flutter kurulumunuzu kontrol etmek için:
flutter --version
flutter doctor-
Depoyu klonlayın
git clone <depo-url> cd learning_coach
-
Bağımlılıkları yükleyin
flutter pub get
-
Kod üretin (Riverpod ve routing için)
dart run build_runner build --delete-conflicting-outputs
-
Uygulamayı çalıştırın
# Chrome/Web için flutter run -d chrome # macOS için flutter run -d macos # Windows için flutter run -d windows # Linux için flutter run -d linux
Ekibiniz belirli bir Flutter versiyonunu zorlamak istiyorsa:
# FVM'i yükleyin
dart pub global activate fvm
# Belirli Flutter versiyonunu kullanın
fvm use 3.9.2
# Komutları FVM ile çalıştırın
fvm flutter run -d chrome# Bağımlılıkları al
flutter pub get
# Kod üretimini çalıştır
dart run build_runner build --delete-conflicting-outputs
# Değişiklikleri izle ve yeniden üret (geliştirme sırasında kullanışlı)
dart run build_runner watch --delete-conflicting-outputs
# Kodu formatla
dart format .
# Kodu analiz et
flutter analyze
# Testleri çalıştır
flutter test
# Production için derle (web örneği)
flutter build web --releaseBu proje flutter_lints tabanlı katı linting kuralları kullanır. Commit etmeden önce:
- Kodunuzu formatlayın:
dart format . - Analyzer sorunlarını düzeltin:
flutter analyze - Testleri çalıştırın:
flutter test
Tüm bu kontroller, pull request oluşturduğunuzda CI'da otomatik olarak çalışır.
Detaylı kurallar için lütfen CONTRIBUTING.md dosyasını okuyun. Kısa özet:
feature/<aciklama>- Yeni özellikler (örn.feature/hedef-takibi)fix/<aciklama>- Hata düzeltmeleri (örn.fix/navigasyon-hatasi)chore/<aciklama>- Bakım görevleri (örn.chore/bagimliliklari-guncelle)
main'den bir özellik branch'i oluşturun- Değişikliklerinizi yapın
- Tüm kontrollerin geçtiğinden emin olun (format, analyze, test)
- Push yapın ve şunlarla bir PR oluşturun:
- Açık açıklama
- Ekran görüntüleri (UI değişiklikleri varsa)
- Tamamlanmış PR kontrol listesi
- En az 1 onay alın
main'e squash merge yapın
- flutter_riverpod (^3.0.3): State yönetimi
- go_router (^17.0.1): Deklaratif routing
- google_fonts (^6.3.3): Tipografi
- intl (^0.20.2): Uluslararasılaştırma ve tarih formatlama
- uuid (^4.5.2): Benzersiz tanımlayıcılar
- equatable (^2.0.7): Değer eşitliği
- flutter_lints (^5.0.0): Linting kuralları
- riverpod_generator (^3.0.3): Riverpod için kod üretimi
- build_runner (^2.7.1): Kod üretim çalıştırıcısı
- json_serializable (^6.11.2): JSON serileştirme
Uygulama, alt navigasyon için stateful shell ile GoRouter kullanır. Ana rotalar:
/home- Ana sayfa/study- Çalışma seansları/study/running- Aktif seans (tam ekran)/study/quiz- Seans sonrası quiz (tam ekran)/study/summary- Seans özeti (tam ekran)
/docs- Doküman kütüphanesi/docs/detail- Doküman detay görünümü/docs/chat- Doküman soru-cevap sohbeti
/profile- Kullanıcı profili/kaizen- Kaizen kontrolü (modal)/goal-detail- Hedef detay görünümü (modal)
Tam navigasyon akışı için docs/NAVIGATION.md dosyasına bakınız.
Şu anda tüm veriler lib/shared/data/mock_data_repository.dart dosyasında mock edilmiştir. Bu, backend bağımlılığı olmadan UI'ın tam işlevsel olmasını sağlar.
Mock veriyi değiştirmek veya veri yapısını anlamak için docs/MOCK_DATA.md dosyasına bakınız.
Tüm testleri çalıştır:
flutter testBelirli bir testi çalıştır:
flutter test test/widget_test.dartKapsama ile çalıştır:
flutter test --coverageEksik .g.dart dosyaları hakkında hatalar görüyorsanız:
dart run build_runner build --delete-conflicting-outputsEn son değişiklikleri çektikten sonra her zaman çalıştırın:
flutter pub get
dart run build_runner build --delete-conflicting-outputsBazen kod üretimi tam yeniden başlatma gerektirir. Uygulamayı durdurun ve tekrar çalıştırın:
flutter run -d chromePush yapmadan önce yerel olarak çalıştırın:
dart format .- Gelişmiş analitik panosu
Learning Coach, PostgreSQL veritabanı şeması ve migration altyapısı içerir. Backend API henüz geliştirilmemiş olsa da, veritabanı tasarımı hazırdır.
# Backend klasörüne git
cd backend
# Bağımlılıkları yükle
npm install
# .env dosyasını yapılandır
cp ../.env.example ../.env
# .env dosyasını açıp DATABASE_URL'i düzenleyin
# Tek komutla veritabanını kur!
npm run db:setup
# (Opsiyonel) Demo veri ile birlikte:
npm run db:setup:seedNot: PostgreSQL'in kurulu ve çalışır olması gerekir. Detaylar için backend/QUICKSTART.md.
- PostgreSQL 14+ with pgvector extension (RAG için)
- UUID primary keys
- Soft delete ve timestamp tracking
- Auto-update triggers
- Performance indexes (pgvector HNSW dahil)
- 16 tablo: users, goals, study_sessions, documents, chat_messages, gamification ve daha fazlası
npm run db:setup- Tek komutla kurulum (otomatik validation + migration)npm run db:setup:seed- Kurulum + demo verinpm run db:migrate- Migration'ları uygulanpm run db:reset- DB'yi sıfırla (drop + migrate + seed)npm run db:status- Migration durumunu gösternpm run docker:up- PostgreSQL Docker container'ı başlat
Detaylı dokümantasyon için backend/README.md dosyasına bakınız.
- PostgreSQL veritabanı tasarımı ve migration'lar
- Backend entegrasyonu (Node.js/Python)
- Doküman soru-cevap için RAG implementasyonu
- Kullanıcı kimlik doğrulama (Firebase/Supabase)
- Cloud doküman depolama
- Mobil uygulama (iOS/Android)
- Gerçek zamanlı çalışma seansı senkronizasyonu
- Gelişmiş analitik panosu
Bu proje özeldir ve eğitim amaçlıdır.
Katkı kuralları için CONTRIBUTING.md dosyasına bakınız.
İyi Öğrenmeler! 🎓