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)
  • Google Books API
  • MVVM Architecture

Book Statuses

Each book can have one of the following statuses:

  • Should Read — default when added
  • Reading
  • Read

These are visually styled using color-coded chips for intuitive filtering.


How to Run

  1. Clone or download the project repository
  2. Open the project in Android Studio
  3. Allow Gradle to sync all dependencies
  4. Run the app on a connected emulator or physical Android device
  5. 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`.

android/proiect/2025/proiecte/mybookshelfapp.txt · Last modified: 2025/05/30 02:34 by andrei_mihai.canuta
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0