Skip to content

Bootcamp Capstone Project - MVVM with Clean Achitecture, Hilt , Coroutines,Room, Retrofit, ViewPager2, DataBinding, LiveData, Glide, Lottie

License

Notifications You must be signed in to change notification settings

kursatkumsuz/travel-guide

Repository files navigation

Patika & FMSS Bilişim Bootcamp Final Project - Guide Travel App

Used Technologies

  • Clean Architecture + MVVM
  • Hilt
  • Navigation Compose
  • ViewPager2
  • Fragments
  • RecyclerView
  • Bottom Navigation Bar
  • LiveData
  • DataBinding
  • Kotlin Coroutines
  • Room
  • Retrofit
  • Glide
  • Lottie

📸 Project Video

Timeline.1.mov

📸 Screens

Home Screen

Tüm veriler API aracılığı gelmektedir. TabLayout itemlarına tıklayınca RecyclerView'ın verileri değişmektedir. RecyclerView'ın herhangi bir item'ına tıklayınca Detail Fragment'a gidilmektedir.

Detail Screen - Image Detail Screen

Tıklanılan item'ın tüm verileri bu ekranda gösterilmektedir.Tüm resimler sol üstteki butona tıklayınca Image Detail Fragment'a gönderilir. Tüm resimler Image Detail Fragment'ta ViewPager yardımıyla slide edilerek görüntülenmektedir. Add Bookmark butonuna tıklayınca Backend'e istek atılarak isBookmark değeri true olarak değiştirilir ve Trip Fragment'a yönlendirilir.

Search Screen

Bu ekrandaki tüm veriler API aracılığı ile gelmektedir. Liste elemanlarına tıklayınca Detail Fragment'a gidilmektedir. Nearby Attractions kategorisindeki itemların sol üstünde bulunan butona tıklayınca Backend'e istek atılarak isBookmark değeri true olarak değiştirilir. Kullanıcı burada Search işlemi de yapabilmektedir. Kullanıcı aratmak istediği kelimeyi yazdıktan sonra ara butonuna bastığında Search Result ekranına yönlendirilmektedir.

Trip Screen

Üstteki TabLayout sayesinde RecyclerView içindeki veriler değiştirilmektedir. Trips kısmındaki veriler Room database'den gelmektedir. Bookmark kısmındaki veriler ise API aracılığı ile gelmektedir. Bookmark kısmında sadece isBookmark değeri true olan veriler gelmektedir. Liste elemanları sola kaydırıldıklarında kaldırılmaktadırlar. Trips kısmındaki veriler item sola kaydırıldığında room databaseden silinmektedir. Bookmark kısmında ise Backend'e istek atılarak isBookmark değeri false olarak değiştirilmektedir.

Floating action button'a tıklanıldığında bottom sheet fragment açılmaktadır. İki adet seçenek sunulmaktadır. Create Your Trip seçeneğinde kullanıcı kendi planladığı gezileri oluşturabilmektedir. Select for bookmark seçeneğinde ise Backend tarafındaki veriler sunularak kullanıcı bookmark kısmına istediği yeri ekleyebilmektedir.

Add Bookmark Screen

Tüm veriler API aracılığı ile gelmekte ve RecyclerView içinde gösterilmektedir. Kullanıcı ekle butonuna tıklayarak istediği yerleri bookmark kısmına ekleyebilmektedir.

Add Trip Screen

Bu ekranda kullanıcı yapmayı planladığı geziyi oluşturabilmektedir. Üstteki ImageView'a tıklayınca Image Search ekranına yönlendirilmektedir. Alttaki Date butonuna tıklayınca DatePicker açılmaktadır. Kullanıcı hangi tarih aralıklarında seyahat etmek istediğini DatePicker ile seçebilmektedir. Tüm bilgiler girildikten sonra kaydet butonuna basılırsa veriler room database'e kaydedilmektedir. Eğer bilgilerden biri bile eksik ise kaydetme işlemi yapılmamakta ve kullanıcıya Toast mesajı gösterilmektedir.

Search Image Screen

Kullanıcı gitmeyi planladığı yerle ilgili resim aratması yapıp istediği resmi seçebilmektedir. Aratılan resimler Pixabay tarafından sunulan API aracılığı ile gelmekte ve RecyclerView ile gösterilmektedir. Resim seçildikten sonra seçilen resmin Url'si Add Trip ekranına aktarılmaktadır.

Guide Screen

Bu ekrandaki tüm veriler API aracılığı ile gelmekte ve RecyclerView ile gösterilmektedir. Kullanıcı isterse Top Pick Articles kategorisindeki verileri kaydedilmektedir. Kullanıcı bu ekranda arama işlemi yapabilmektedir. İstediği kelimeyi yazdıktan sonra Search Result ekranına yönlendirilmektedir.

Search Result Screen

Bu ekranda aratılan kelimeye uygun veriler gösterilmektedir. API'den çekilen veriler aratılan kelimeye göre filtrelenmektedir.

License


MIT License
Copyright (c) 2022 Kürşat Kumsuz

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial 
portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH 
THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Bootcamp Capstone Project - MVVM with Clean Achitecture, Hilt , Coroutines,Room, Retrofit, ViewPager2, DataBinding, LiveData, Glide, Lottie

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages