Skip to content

A small application for book reading tracking. A good sample for practicing jetpack compose and android architecture practice.

Notifications You must be signed in to change notification settings

JayExtra/book_tracking_app

Repository files navigation

Book Tracker Mobile Application (Currently under development) 🔨

BookTracker is an application for tracking book reading progress and also keep notes on every book that a person reads. The application will also support book reading goals which a user can set either weekly , monthly or yearly and also get reminders for reading a book which the user can set according to their preferred time. In the future plans , Book Tracker will support creation of e book clubs , offer book trading services between different users and also support for book trade in's that can cut cost for a lot of users and also reduce book waste.

Dependencies used

  1. Jetpack Compose - ui toolkit for building modern native android UI. read more here 👉
  2. Kotlin coroutines - for concurrency and asynchronous tasks read more here 👉
  3. Dagger Hilt - for dependency injection read more here 👉
  4. Retrofit and Okhttp - for making network calls to the backend and also logging of responses. read more here 👉
  5. Jetpack Room - used for caching complex datasets locally read more here 👉
  6. Jetpack datastore - a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers. read more here 👉
  7. Raamcosta Compose Destinations - for traversing between different fragment screens. read more here 👉
  8. Lottie animations - for cool looking animations. read more here 👉
  9. Timber - for log statements.
  10. Firebase Cloud Messaging Services - for sending push notifications to devices. read more here 👉
  11. Firebase Crashlytics - for detailed in app crash reporting. read more here 👉
  12. Firebase Firestore - for saving user data in cloud. read more here 👉
  13. Mockito - for implementing mocks during testing.read more here 👉
  14. Mock Web Server - for simulating network calls and responses during unit tests.read more here 👉
  15. Google truth library - for making assertions during unit and instrumented tests.read more here 👉

Architecture

The project has a multimodular setup and recommended MVVM design pattern. This is accordance to the latest Modern Application Development paradigm recommended by Android Developers and Google.

The project is structured as follows:

Data

This layer will include;

  1. Network Calls
  2. Caching
  3. Storing and fetching Preferences.
  4. The repository implementation
  5. The relevant data models
  6. Relevant Mappers

Domain

This layer will contain;

  1. The repository
  2. The relevant domain models.

Presentation

  1. View
  2. ViewModels
  3. Relevant Mappers
  4. Relevant Models.

You can find the UI designs here. The UI is designed in Figma. Book Tracker App wireframe

About

A small application for book reading tracking. A good sample for practicing jetpack compose and android architecture practice.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages