Skip to content

Öğrenciler için akıllı çalışma takibi ve topluluk platformu

License

Notifications You must be signed in to change notification settings

salihefeserit/study-track

Repository files navigation

StudyTrack

StudyTrack, öğrencilerin çalışma oturumlarını takip etmelerine, hedefler belirlemelerine, ilerlemelerini görselleştirmelerine ve diğer öğrencilerle etkileşime geçmelerine yardımcı olmak için tasarlanmış bir uygulamadır.

Özellikler

  • Kimlik Doğrulama (Authentication)

    • E-posta/Şifre ile kayıt olma ve giriş yapma.
    • Google ile Giriş (OAUTH) entegrasyonu.
    • E-posta doğrulama.
    • E-posta üzerinden şifre sıfırlama.
  • Çalışma Zamanlayıcısı

    • Çalışma süresini gerçek zamanlı takip etme.
    • Oturumlar için ders seçimi.
    • Çalışma geçmişini kaydetme.
  • Hedefler ve İstatistikler

    • Günlük ve haftalık çalışma hedefleri belirleme.
    • Gösterge panelinde görsel ilerleme çubukları ve özetler.
    • Performansı analiz etmek için detaylı istatistik sayfası.
  • Topluluk

    • Gönderiler: Düşüncelerinizi, ilerlemenizi veya sorularınızı toplulukla paylaşın.
    • Yorumlar: Gönderiler altında tartışın.
    • Beğeniler: Gönderilerle etkileşime geçin.
  • Profil Yönetimi

    • Kişisel bilgileri güncelleme (Ad, Bölüm, Sınıf vb.).
    • Profil fotoğrafı yükleme ve güncelleme (otomatik sıkıştırma ve depolama optimizasyonu ile).
    • Özel ders listelerini yönetme.
  • Dinamik Yapılandırma (Remote Config)

    • Uzaktan Kontrol: Ana sayfa karşılama mesajı ve özellik anahtarları ("Topluluk Sekmesini Göster" veya "Gizle") Firebase Remote Config üzerinden yönetilir.
    • Otomatik Yenileme: Ana sayfayı her ziyaret ettiğinizde yapılandırma değerleri otomatik olarak yenilenir.
  • Bağlantı Kontrolü

    • Global çevrimdışı (offline) algılama.
    • Cihaz internet bağlantısını kaybettiğinde "İnternet Yok" ekranı gösterilerek etkileşim engellenir, bağlantı gelince normale döner.

Kullanılan Teknolojiler

  • Framework: Flutter
  • Durum Yönetimi (State Management): Riverpod (riverpod_generator ile)
  • Navigasyon: GoRouter
  • Backend: Firebase
    • Authentication: Kullanıcı kimliği ve erişim yönetimi.
    • Firestore: Kullanıcılar, gönderiler, yorumlar, oturumlar vb. için NoSQL veritabanı.
    • Storage: Kullanıcı profil fotoğrafları ve gönderi görselleri için depolama.
    • Remote Config: Dinamik uygulama yapılandırması.
    • Analytics: Kullanım takibi.
    • Messaging: İstenildiğinde kullanıcılara duyuru bildirimleri atılması.

Başlarken

Gereksinimler

  • Flutter SDK (^3.9.2)
  • Dart SDK

Kurulum

  1. Depoyu (Repository) klonlayın:
git clone https://github.com/salihefeserit/study-track
cd study_track
  1. Bağımlılıkları yükleyin:
flutter pub get
  1. Firebase Kurulumu:

    • flutterfire_cli yüklü olduğundan emin olun veya yapılandırma dosyalarınızı manuel olarak yerleştirin.
    • Android: google-services.json dosyasını android/app/ içine koyun.
  2. Kod Üretimi (Code Generation):

Bu proje riverpod_generator ve build_runner kullanmaktadır. Gerekli .g.dart dosyalarını oluşturmak için şu komutu çalıştırmalısınız:

dart run build_runner build --delete-conflicting-outputs
  1. Uygulamayı çalıştırın:
flutter run

Veritabanı İndeksleri

"Topluluk" özelliklerinin (özellikle yorumlardaki profil senkronizasyonunun) doğru çalışması için Firestore'da bir Collection Group Index etkinleştirmeniz gerekir.

  • Collection ID: comments
  • Field Path: userId
  • Query Scope: Collection Group

Eğer bu indeks eksikse, uygulama loglarda bir link (veya debug arayüzünde kırmızı bir hata mesajı) göstererek sizi Firebase Console üzerinden otomatik oluşturmaya yönlendirecektir.

Mimari

Proje, özellik öncelikli (feature-first) bir mimari izler:

lib/
├── core/             # Paylaşılan kodlar (servisler, widget'lar, araçlar, provider'lar)
├── features/         # Özellik modülleri (auth, home, community vb.)
│   ├── data/
│   ├── domain/
│   ├── presentation/ (views, widgets, controllers)
├── router/           # Uygulama yönlendirme yapılandırması
└── main.dart         # Giriş noktası

About

Öğrenciler için akıllı çalışma takibi ve topluluk platformu

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published