Bu proje, oryantiring sporu için geliştirilen bir mobil uygulamadır. Oryantiring, katılımcıların harita üzerindeki belirli kontrol noktalarını en hızlı şekilde bulmalarını gerektiren bir spordur. Uygulama, modern akıllı telefonların GPS ve QR kod okuma gibi özelliklerini kullanarak oryantiringi daha erişilebilir ve kullanıcı dostu hale getirmeyi amaçlamaktadır. Uygulama, Flutter çerçevesi kullanılarak geliştirilmiştir.
![Oryantiring Görseli](https://private-user-images.githubusercontent.com/96126651/358239545-e28fc02d-01b1-40af-97b3-2453127615ec.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYwOTAwNDEsIm5iZiI6MTcyNjA4OTc0MSwicGF0aCI6Ii85NjEyNjY1MS8zNTgyMzk1NDUtZTI4ZmMwMmQtMDFiMS00MGFmLTk3YjMtMjQ1MzEyNzYxNWVjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTExVDIxMjIyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQxZDUzOTVjZDc0NWMzMjc0OGU4NjQzY2FiOWZhZmY4YjVhYmY4ZmQ5ODIxNmYyZWNhMWNmMGE4YjYxODNkY2QmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.RzhI4JM5PKnvisBlXnjfnqAHnetOdVzLcQ_1BnO36EY)
Oryantiring, katılımcıların bir harita ve pusula yardımıyla belirlenen kontrol noktalarına en hızlı şekilde ulaşmaya çalıştıkları bir doğa sporudur. Bu spor, fiziksel ve zihinsel dayanıklılığı bir araya getirir. Oryantiringde başarı, doğru yön bulma, hızlı karar verme ve etkili bir strateji geliştirmeye bağlıdır. Farklı arazi koşullarında yapılan oryantiring, genellikle ormanlık alanlarda, parkurlarda veya şehir içindeki belirli bölgelerde gerçekleştirilebilir.
Oryantiring, sadece bir spor değil, aynı zamanda doğal ortamda yön bulma becerilerinizi test eden ve geliştiren bir etkinliktir. Hem bireysel olarak hem de takım olarak yapılabilen bu spor, her yaş grubundan insan için uygundur ve doğayla iç içe olmayı sevenler için ideal bir etkinliktir.
Oryantiring, dünyada birçok ülkede popülerdir ve çeşitli yarışmalar ve etkinlikler düzenlenir. Bu spor, hem amatör hem de profesyonel sporcular tarafından ilgi görmektedir.
- Kullanıcı Kimlik Doğrulama: Firebase Authentication ile güvenli giriş ve kayıt.
- Gerçek Zamanlı GPS Takibi: Kullanıcıların gerçek dünya konumlarını takip edin ve gösterin.
- Harita Entegrasyonu: Kullanıcıların kontrol noktalarına ulaşmalarına yardımcı olmak için etkileşimli haritalar.
- QR Kod Entegrasyonu: Çeşitli kontrol noktaları için QR kodları oluşturun ve tarayın.
- Oyun Modları: Hem iç mekan hem de dış mekan oryantiring oyunları için destek.
- Kullanıcı Profili: Kullanıcılar profil bilgilerini güncelleyebilir ve fotoğraf yükleyebilir.
- Oyun Geçmişi: Kullanıcılar oynadıkları oyunları görebilir ve skorlarını inceleyebilir.
- İstatistik Takibi: Performans istatistiklerini izleyin ve zaman içindeki performansınızı karşılaştırın.
- Skor Karşılaştırma: Arkadaşlarınızla veya diğer oyuncularla skorlarınızı karşılaştırın.
- Flutter: Çok platformlu mobil uygulama geliştirme çerçevesi.
- Firebase Firestore: Kullanıcı verilerini ve oyun bilgilerini saklamak için gerçek zamanlı veritabanı.
- Firebase Authentication: Kullanıcı kimlik doğrulama sistemi.
- Firebase Storage: Kullanıcı profil fotoğraflarını ve diğer medya dosyalarını depolamak için.
- Google Maps API: Harita ve konum hizmetleri için.
- QR Kod: Kontrol noktası işaretlerini oluşturmak ve taramak için.
Projeyi yerel olarak kurmak için şu adımları izleyin:
-
Depoyu klonlayın:
git clone https://github.com/mevlutayilmaz/orienteering.git
-
Proje dizinine gidin:
cd orienteering
-
Bağımlılıkları yükleyin:
flutter pub get
-
Firebase'i projeniz için ayarlayın:
- Firebase Konsolu üzerinden bir Firebase projesi oluşturun.
- Firebase projenize Android ve iOS uygulamaları ekleyin.
google-services.json
veGoogleService-Info.plist
dosyalarını Firebase'den indirip proje dosyalarınızla değiştirin.
-
Google Maps API'yi Ayarlama:
- Google Cloud Console'dan bir API anahtarı oluşturun.
- Oluşturduğunuz API anahtarını aşağıdaki gibi
AndroidManifest.xml
dosyasına ekleyin:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY"/>
- Bu dosya, proje dizininde
android/app/src/main/AndroidManifest.xml
yolunda bulunmaktadır.
-
Uygulamayı çalıştırın:
flutter run
- Kayıt Ol: Yeni bir kullanıcı olarak kayıt olun. E-posta adresinizi ve şifrenizi girin. Ayrıca, isteğe bağlı olarak bir profil fotoğrafı yükleyebilirsiniz.
- Giriş Yap: Mevcut bir hesabınız varsa, e-posta adresiniz ve şifrenizle giriş yapın.
- Profil Güncelleme: Profil sayfanıza gidin. Burada adınızı, e-posta adresinizi güncelleyebilir ve yeni bir profil fotoğrafı yükleyebilirsiniz.
- Profil Fotoğrafı Yükleme: Galerinizden bir fotoğraf seçin veya kamerayı kullanarak yeni bir fotoğraf çekin.
- Oyun Modları: İç mekan ve dış mekan oryantiring oyunları arasında seçim yapabilirsiniz.
- Oyun Oluşturma: Yeni bir oyun oluştururken, kontrol noktalarını belirleyin ve QR kodlarını yerleştirin (iç mekan oyunlar için). Oyun başlamadan önce haritada bu noktaları işaretleyin.
- Oynama: Oyun sırasında, GPS'inizi kullanarak belirtilen kontrol noktalarına gidin. Kontrol noktasına ulaştığınızda, QR kodunu tarayarak (iç mekan oyunlar için) ilerleyin.
- Gerçek Zamanlı Takip: Harita üzerinde kendinizi ve kontrol noktalarınızı gerçek zamanlı olarak görün.
- Oyun Geçmişi: Oynadığınız oyunların bir listesini profil sayfanızda görebilirsiniz. Her bir oyun için hangi kontrol noktalarına ulaştığınızı ve oyun süresini inceleyin.
- Skorlar ve Karşılaştırma: Oyun sonrasında, skorlarınızı inceleyin ve diğer oyuncularla karşılaştırın. Skorlar, harita üzerinde hangi noktalara ne kadar sürede ulaştığınızı gösterir.
- İstatistik Takibi: Zaman içindeki performansınızı grafiklerle inceleyin. En hızlı sürede tamamladığınız oyunları ve genel başarı oranınızı görün.
- Kontrol Noktası Oluşturma: Yeni bir iç mekan oyunu oluştururken, her bir kontrol noktası için bir QR kodu oluşturabilirsiniz. Bu kodlar, oyun sırasında taranmak üzere kullanılır.
- QR Kod Tarama: Oyun sırasında belirtilen kontrol noktasına ulaştığınızda, QR kodu tarayarak ilerleyin. Bu, oyunun ilerleyişini kaydeder ve skorlarınızı günceller.