My Bookshelf App
CANUTA Andrei-Mihai, SCPD-1
Overview
My Bookshelf is an Android application developed in Kotlin using Jetpack Compose. It helps users organize, search, and manage a personal library of books.
The app integrates with the Google Books API to fetch book information and uses Room Database for local storage of user selections.
Features
Home Screen — View saved books from the local database
Search Screen — Query books using Google Books
API
Book Details — View cover, title, author, description, and rating in a styled popup
Add Book — Save books from search results to the local collection
Update Status — Change status between Should Read, Reading, and Read
Delete Book — Remove a book with confirmation
Filter — Filter books by status using selection chips
Technologies Used
Kotlin
Jetpack Compose
Navigation Component
Room Database
Retrofit
Coil (Image loading)
-
MVVM Architecture
Book Statuses
Each book can have one of the following statuses:
These are visually styled using color-coded chips for intuitive filtering.
How to Run
Clone or download the project repository
Open the project in Android Studio
Allow Gradle to sync all dependencies
Run the app on a connected emulator or physical Android device
Ensure the device has
Internet access for
API requests
Known Issues
You must increment the Room database version when updating the `Book` entity or schema, otherwise you will get a `Room cannot verify the data integrity` crash.
Some books from the Google Books
API may not return thumbnails or descriptions — fallback text is displayed in such cases.
Covers sometimes fail to load due to null `imageLinks.thumbnail`.