Giter Club home page Giter Club logo

bookworm's Introduction

Little fun project to learn and play around with new things...

Work in progress ๐Ÿšง

Bookworm ๐Ÿ“š๐Ÿชฑ

An app to keep an overview of all your books.

Technology

  • Android
  • Kotlin
  • Hilt
  • Compose
  • Compose Navigation
  • Room
  • Permission Handling
  • CameraX
  • DataStore
  • MLKit detecting Barcodes
  • Gradle setup with Kotlin DSL and Gradle version catalog
  • Google Analytics
  • Google Crashlytics
  • Google AppCheck
  • Code coverage report with Kover
  • Static analysis with Detekt

Architecture

  • Following Google Architecture Guide
  • Data, Domain, Presentation layers approach
  • Unidirectional DataFlow

Third party licenses

To generate or update the list of used libraries and their licenses run the following command ./gradlew app:exportLibraryDefinitions -PaboutLibraries.exportPath=src/main/res/raw/ -PaboutLibraries.exportVariant=release

bookworm's People

Contributors

carmen-gh avatar dependabot[bot] avatar renovate[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar

bookworm's Issues

Book domain model

  • Title
  • Subtitle
  • Author
  • Published date
  • Cover
  • list of tags
  • category
  • progress
  • notes

Search Online: via Title

using google books api open library API

  • show search bar
  • API for searching via title
  • show results in list
  • click on one of the result entries in the list, show book details
  • adapt result UI
  • adapt behaviour how to add book (Plus button or clicking on book itself)
  • fix ui colors especialy on light (no result search icon, textfield cursor, delete icon)
  • start search manually via keyboard search press
  • add exception handling view model
  • only show delete button when query is not empty

Read Barcode Info from camera

Error handling

Google Books API can throw errors which must be handled in a user friendly way.

Example for dealing with exeptions can be found in BookResultViewModel

Bookshelf: option to sort list

  • sort by date added (default)
  • sort by title
  • sort by author
  • adapt use case to use sort order
  • add use case to change sort order
  • action bar to change the sorting
  • persist preferred sorting

Bookshelf: add timestamp when book was added

when a book is been added to the bookshelf, the app should store as metadata the timestamp when the book was added.
So that later on the books can be sorted based on the date they have been added

Use open Library API

The results of Google API are not good.

OpenLibrary is a free alternative with good results
https://openlibrary.org/dev/docs/api/search

Search for title

curl "https://openlibrary.org/search.json?title=ein%20hund%20namens%20money&limit=10"

Search via isbn

curl "https://openlibrary.org/api/books?bibkeys=ISBN%3A9781590300169&format=json&jscmd=data"

delete book

as a user I want to delete a book from my bookshelf, if I not longer own it.

  • #47
  • on book details screen button to delete the book

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.