Giter Club home page Giter Club logo

journeytracker's Introduction

Journey Tracker


This is a simple android application that allows users to track their journeys. It takes periodic photos from Flickr using the user's current location and stores them in a local database.

Technologies

  • Android
  • Kotlin
  • Jetpack compose
  • Koin
  • Coroutines
  • Raamcosta library for Compose Navigation (Github link)[https://github.com/raamcosta/compose-destinations]
  • Room
  • Retrofit
  • Flickr API
  • Google Location Services
  • Kotest for Unit testing
  • Shot for UI testing

Architecture

  • Single activity architecture with Jetpack Compose screens
  • Navigation between screens using Compose Destinations library
  • Koin for dependency injection
  • Retrofit for network requests
  • Room for local database
  • Coroutines for asynchronous operations
  • Kotest and Mockk for testing
  • Shot for UI testing
  • LifecycleService for tracking location updates via LocationRepository

Features

  • User can view a list of journeys
  • User can start a journey
  • User can stop a journey

Setup to run Unit testing inside Android Studio

Setup to run screenshot testing

  • Use the following gradle command to run the screenshot tests and to capture the screenshots
./gradlew :app:executeScreenshotTests -Precord
  • Use the following gradle command to run the screenshot tests and to compare the screenshots
./gradlew :app:executeScreenshotTests

Note

  • The main focus is on the architecture and the use of Jetpack Compose.
    • The error handling and edge cases are handled with limited scope
    • The Flickr api does not provide places only photos. As it is randomly returning images for the given location for the same location, the images are not guaranteed to be relevant to the location.

journeytracker's People

Contributors

gowthamraj07 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.