Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bookshelf 📚

Bookshelf is a modern Android application that lets readers discover titles from the public Gutendex catalogue and create a personal bookshelf stored locally on device. The app demonstrates a clean, testable architecture built with Jetpack Compose, Hilt, Room, and Retrofit.

Features

  • 🔍 Search Gutendex with a debounced text field and responsive Compose list.
  • 📚 Save or remove books from a Room‑backed bookshelf that persists offline.
  • 🗂️ Browse saved titles with dedicated loading, error, and empty states.
  • Unit-tested architecture covering repositories, DAOs, and feature view models (MockK, Turbine, Truth).

Tech Stack

Layer Technologies
UI Jetpack Compose, Material 3, Navigation Compose, Kotlin Coroutines
DI Hilt
Data Retrofit + Moshi, Room (SQLite)
Domain Clean Architecture style use cases & models
Testing JUnit4, MockK, kotlinx-coroutines-test, Turbine, Truth, Room testing utilities

Architecture

app/
 └── com.pardip.bookshelf
     ├── data/        # Retrofit service, Room DAO/entities, repository
     ├── domain/      # Business models & use cases
     ├── presentation # Compose UI, view models, navigation, theme
     └── BookshelfApp / MainActivity

The layers communicate through interfaces (e.g., IBooksRepository) so UI code stays decoupled from networking and persistence concerns.

Getting Started

  1. Prerequisites

    • Android Studio Giraffe (or newer)
    • JDK 17
    • Device or emulator running Android 7.0 (API 24) or higher
  2. Clone & build

    git clone https://github.com/Pardip235/Bookself.git
    cd Bookself
    ./gradlew assembleDebug
  3. Run the app via Android Studio or ./gradlew installDebug.

Testing

Run the unit test suite (data + presentation layers):

./gradlew testDebugUnitTest

Roadmap Ideas

  • Book detail screen with richer metadata
  • Offline caching & pagination for search results
  • User accounts / cloud sync for the bookshelf
  • Additional UI polish and accessibility improvements

Contributions and suggestions are welcome—feel free to open an issue or PR. Happy reading!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages