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.
- Jetpack Compose - ui toolkit for building modern native android UI. read more here 👉
- Kotlin coroutines - for concurrency and asynchronous tasks read more here 👉
- Dagger Hilt - for dependency injection read more here 👉
- Retrofit and Okhttp - for making network calls to the backend and also logging of responses. read more here 👉
- Jetpack Room - used for caching complex datasets locally read more here 👉
- Jetpack datastore - a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers. read more here 👉
- Raamcosta Compose Destinations - for traversing between different fragment screens. read more here 👉
- Lottie animations - for cool looking animations. read more here 👉
- Timber - for log statements.
- Firebase Cloud Messaging Services - for sending push notifications to devices. read more here 👉
- Firebase Crashlytics - for detailed in app crash reporting. read more here 👉
- Firebase Firestore - for saving user data in cloud. read more here 👉
- Mockito - for implementing mocks during testing.read more here 👉
- Mock Web Server - for simulating network calls and responses during unit tests.read more here 👉
- Google truth library - for making assertions during unit and instrumented tests.read more here 👉
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:
This layer will include;
- Network Calls
- Caching
- Storing and fetching Preferences.
- The repository implementation
- The relevant data models
- Relevant Mappers
This layer will contain;
- The repository
- The relevant domain models.
- View
- ViewModels
- Relevant Mappers
- Relevant Models.
You can find the UI designs here. The UI is designed in Figma. Book Tracker App wireframe