GithubHelp home page GithubHelp logo

kayseri_ulasim_without_api's Introduction

Kayseri Ulaşım

Kayseri ulaşım Kayseri için oluşturulmuş bir akıllı şehir mobil uygulamasıdır. API'ler güvenlik açısından gizlenmiştir bu yüzden mevcut kod ile derlenen uygulama çalışmaz.

Uygulama önemli verilerin artık belediyeden alınamaması üzerinden Google Play'den kaldırılmıştır.

Uygulamayı APK dosyasını indirerek açabilirsiniz. İndirmek için tıklayınız.

Uygulamanın Özellikleri

Giriş Bölümü

Uygulamanın açılışında gösterilen olan bu bölümden kullanıcı uygulamanın istediği alanlarına erişebilir. Navigation Drawer ile de ekranı soldan sağa çekerek açılacak menüden de bölümlere erişim sağlayabilir.

Vatandaşlar öncelikli olarak bulundukları duraklara gelecek otobüsleri öğrenmek istemektedirler. Bu yüzden kullanıcıyı her defasında sabit bir bilgi için sayfa sayfa dolandırmaktansa, ana sayfaya en çok talep edilen bu bilgi eklendi. Böylece uygulama açılır açılmaz kullanıcıya kendisine en yakın duraktan geçen otobüsler ve bu otobüslerin ne zaman geleceği hakkında bilgi verilir.

En yakın durak verisinin teknik çalışma algoritması

  1. FusedLocationProviderClient metodu ile kullanıcının konumu enlem boylam olarak alınır.
  2. Aldığımız bu enlem ve boylam bilgisi, bize o enlem boylama en yakın mevcut durakları sunucudaki veritabanından dönderecek web servise gönderilir. Burada ayrıca adet sayısı gönderilen konuma en yakın kaç durağın dönderileceğini belirtir. Burada bu sayı 1'dir. Çünkü biz kullanıcıya en yakın durağı döndermek istiyoruz.
  3. En yakın durak verisi web servisten alındıktan sonra bu veri aldığı durak id'si karşılığında bize durak hakkında bilgiler veren API'ye yönlendirilir. Bu API ise bize durağa gelecek otobüs bilgilerini sunmaktadır.
  4. Tüm bu bilgiler Model'e eklendikten sonra RecyclerView(List)'e yüklenir ve kullanıcıya gösterilir.
  5. Kullanıcının güncel enlem ve boylam bilgisi uygulama tarafından her 5 saniyede bir istenir. Eğer yeni bir enlem ve boylam bilgisi gelmiş ise LifeCycle ile oluşturulmuş bu liste yenilenir. Bu değişikliğin oluşmabilmesi için 30 metre yer değişikliği gerekmektedir. Listenin otomatik yenilenebilmesi için bu listedeki veriler ROOM veritabanına kayıt edilir ve devamlı sistem tarafından konum değişikliği takip edilir. Liste yenilendiğinde Adım 2'e geçilir.

1 1main 1 2mainPageNavigation

Nasıl Giderim

Kullanıcılar Kayseri sınırları içerisinde bir konumdan başka bir konuma hangi alternatif hatlar ile gidebileceğinin bilgisinin sunulduğu bölümdür.

  • Kullanıcı ekrana basılı tutarak başlangıç ve gidiş noktası seçer.
  • Kullanıcıya seçtiği noktalar arasında giden hatlar liste olarak sunulur.
  • Baz alınacak duraklar: Başlangıç noktasının 500 metre çapında ve gidiş noktasının 1 km çapındaki duraklardır.
  • Yürüme mesafesi 1500 metre üzerinde olamaz.
  • Çizilen rota: Mevcut konumunuzdan ilk durağa. İlk duraktan son durağa. Son duraktan gidiş noktanıza.

2 1howToGoRecycler 2 2howToGoMap

ULAŞIM bölümü

Liste, Harita ve Hatlar adlı üç bölümden oluşur. Otobüs, duraklar ve hatlar hakkındaki tüm işlemlerin yapıldığı, bilgi alındığı genel bölümdür.

Liste

  • Kullanıcının mevcut konumuna en yakın 20 durağın listelendiği bölümdür. Bu duraklar kullanıya en yakın duraktan başlayarak listelenir ve kullanıcının durağa olan uzaklığı metre cinsinden belirtilir.
  • Kullanıcı bu duraklara Haritalar uygulamam vb. yöntemler ile yol tarifi alabilir.
  • Kullanıcı bu duraklardan geçecek otobüsleri ve bu otobüslerin ne zaman geleceğine dair bilgi edinebilir. Eğer çok fazla geçecek hat var ise bu hatlar arasında arama yapabilir.
  • Kullanıcı bu duraklardan geçen tüm hatları görebilir.
  • Duraktan geçen hatlar arasında arama yapabilir. Hat hakkında detaylı bilgileri alabilir.
  • Kullanıcı durakları favorilerine alabilir ve sadece favori duraklarını görüntüleyebilir. Parlak yıldızlar durakların favorilerde olduğu anlamına gelir.
  • Kullanıcı durakta bulunan barkodu telefonunun kamerası ile okutarak o durağın listede görüntülenmesini sağlar.
  • Kullanıcı veritabanındaki 6000 durak arasından arama yapabilir. Bu aramada durak no'su veya durak adı veritabanında var ise veri döner. Örneğin: Arama kısmına 10 yazar isek, bize önce eğer varsa durak no'su 10 olan durak döner devamında ise içerisinde 10 kelimesi geçen duraklar döner. (Atatürk Bulvarı 10 caddesi gibi)

3 1ulasim 3 1 1ulasim

3 1 2ulasim 3 1 3ulasim

Harita

  • Bu kısımda kullanıcının konumuna değil ekranın orta noktasındaki konuma en yakın 20 durak listelenir.
  • Listelenen duraklar ekranın köşe noktaları ile sınırlıdır. Ekran dışında kalan duraklar getirilmez.
  • Listelenen durak sayısı 20'den az olabilir ama 20'den fazla olamaz.
  • Favoriye alınmış duraklar yıldız simgesi ile listelenir.
  • Durakların üzerine tıklanarak yol tarifi alınabilir, favorilere eklenebilir, geçecek otobüslerin bilgisi edinilebilir.
  • Kullanıcı haritayı her hareket ettirdiğinde durak verileri güncellenir.
  • Harita gösterim metodu değiştirilebilir.(Uygu görünümü gibi)
  • Burada oluşturulan web servisin beklediği veriler : Kullanıcının konumu(enlem ve boylam), ekranın tam orta noktasının konumu ekranın Kuzeydoğu noktasının konumu ve ekranın Güneybatı noktasının konum bilgisidir.

3 2ulasim

Hatlar

  • Bu kısımda kullanıcılar hatlar hakkında detaylı bilgi alır.
  • İlk olarak konumuna en yakın 5 duraktan geçen hatlar listelenir.
  • Hattın geçtiği tüm duraklar harita üzerinden görüntülenebilir.
  • Hattan geçen otobüslerin mevcut konumu eğer veri var ise haritada görüntülenecektir.
  • Otobüslerin mevcut konum verisi devamlı güncellenmemektedir. İleride MVVM pattern ile otobüsler canlı olarak takip edilebilir.

3 3ulasim 3 3 2ulasim

Eczaneler

  • Kayseri'de bulunan nöbetçi eczanelerin verileri kullanıcıya gösterilir.
  • Eczaneler Gece 1'e kadar veya 24 saat açık olma durumlarına göre farklılık gösterebilir. Bunlar renklendirilmiştir.
  • Kullanıcının konumuna göre en yakın eczaneden başlanarak eczaneler listeye eklenir.
  • Eczaneler aranabilir ve yol tarifi alınabilir. Yol tarifi daha önce gördüğünüz dialog penceresi ile alınır.

4 1eczane

Vefat

  • Kayseri'de sisteme kayıt edilen günlük vefat bilgilerinin listelendi bölümdür.
  • Geçmiş tarihe ait vefat bilgilerine tarihin üzerine tıklayarak ulaşılabilir.
  • Mezarlık veya Taziye adresine yol tarifi alınabilir.
  • Geçmiş tarihe ait veriler için web servise seçilen tarih verisi POST edilir.

5 1Vefat 5 2Vefat

Otopark

  • Kayseri'deki otoparkların konumları gösterilir.
  • Kullanıcıya uzaklıklarına göre listelenir.
  • Katlı ve katsız otopark olarak 2'ye ayrılır. h- Otoparklara yol tarifi alınabilir.

6 1Otopark 6 2Otopark

KAYBİS

  • Kayseri'deki bisiklet noktalarının konumları gösterilir.
  • Bisiklet noktaları kullanıcının mevcut konumuna göre listelenmeye başlar.
  • Bisiklet istasyonlarının doluluk oranları listede belirtilir.
  • Doluluk oranı; İstasyondaki mevcut bisiklet sayısı / İstasyondaki toplam bisiklet yuvası şeklinde gösterilir.
  • Eğer istasyon boş ise liste kırmızı, doluluk oranı %20 ve altındaysa turunca üstünde ise yeşil olarak renklendirilir.
  • İstasyonlara yol tarifi alınabilir.
  • Tüm istasyonlar harita üzerinde de görüntülenebilir.

7 1Bisiklet 7 2Bisiklet

Haberler

Kayseri BüyükŞehir belediyenin paylaştığı haberler kullanıcıya gösterildiği bu bölümde veriler HTMP Parse edilerek alınmıştır. Bunun için jSoup kütüphanesi kullanılmıştır.

Haberin üzerine tıklanarak haber hakkındaki detaylara bir diyalog penceresi aracılığıyla ulaşılabilir.

8 1Haberler 8 2Haberler

kayseri_ulasim_without_api's People

Contributors

tekinumut avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.