Skip to content

A simple fun geography quiz Android app. Guess countries based on their photos.

License

Notifications You must be signed in to change notification settings

andy-ife/Geobud

Repository files navigation

Project logo

Geobud

Status GitHub Issues GitHub Pull Requests License


Geobud is a simple fun geography quiz app that lets you guess countries from their photos. It is built using the latest technologies and best Modern Android Development practices.

App Screen 1 App Screen 2 App Screen 3

Contributors are highly welcome. Please go through the contributing guidelines here before you start contributing.

💡 Features

Geobud combines education and entertainment, providing the following unique features:

  • Guess countries based on photos of places and famous landmarks. ✈️
  • Save your favorite photos to your phone storage. ⬇️
  • Limited offline capability with photo caching.
  • Browse the history of all your past photos and locations. 🖼️
  • Dark and light mode. 🌓
  • Single activity design.
  • Clean and simple Jetpack Compose UI.
  • Reset your progress so you can enjoy Geobud once more!

🏁 Installation

Release apk

If you simply want to install the app, get the release apk here.

Building from source

If you'd like to tinker with the source code, all you'll need is an API Key from Pexels, the API that provides photos.

In your local gradle.properties file, add the line:

PEXELS_API_KEY=<Your_API_Key>

⛏️ Built Using

  • Kotlin - Google's preferred language for Android development.
  • Jetpack Compose - Android's recommended modern UI toolkit.
  • ViewModel - Lifecycle-aware stateholder class that encapsulates business logic and survives configuration changes.
  • Coroutines - Kotlin's solution for asynchronous/non-blocking code.
  • Flows - For reactive programming. In addition to Kotlin's flows, Android's StateFlow and SharedFlow APIs were used.
  • LiveData - For lifecycle-aware observable data.
  • Retrofit - Aids REST API communication.
  • Room - Provides an abstraction layer over SQLite for persistent local data storage.
  • WorkManager - For guaranteed execution of persistent background tasks.
  • Hilt - Dependency Injection library built on Dagger.
  • Preferences Datastore - To store small simple datasets persistently in key-value pairs.
  • Coil - Image loading and caching library.
  • Gson - Java library for JSON conversion.
  • Material UI - A set of guidelines and components for building modern user-centric interfaces.
  • Lottie - Lightweight JSON animations.
  • MediaPlayer - Android library for audio/video playback control.

🤝 Contributing

Please read through CONTRIBUTING.md if you would like to contribute to the project.

✍️ Authors

See also the list of contributors who participated in this project.

🙏 Thanks

  • Pexels for their REST API, where all photos used in this application come from.
  • Reshot for the app icon.
  • SVG Repo for icons.

About

A simple fun geography quiz Android app. Guess countries based on their photos.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages