Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kieubaduong/boka
Book reading application with recommendation algorithm to suggest personalized book recommendations
https://github.com/kieubaduong/boka
chaquopy compose-navigation gson jetpack-compose material3-android modern-app-architecture okhttp3 python3 retrofit2
Last synced: about 1 month ago
JSON representation
Book reading application with recommendation algorithm to suggest personalized book recommendations
- Host: GitHub
- URL: https://github.com/kieubaduong/boka
- Owner: kieubaduong
- Created: 2023-05-25T09:09:50.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-12T04:17:32.000Z (over 1 year ago)
- Last Synced: 2023-10-12T20:53:52.975Z (over 1 year ago)
- Topics: chaquopy, compose-navigation, gson, jetpack-compose, material3-android, modern-app-architecture, okhttp3, python3, retrofit2
- Language: Kotlin
- Homepage:
- Size: 6.74 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Book Recommendation App
This is an Android application built using Jetpack Compose and follows the principles of Clean Architecture. The app provides a user-friendly interface for browsing and discovering books, as well as personalized book recommendations based on user preferences.
## Features
- User registration and authentication
- Book search and browsing
- Personalized book recommendations using content-based and collaborative filtering algorithm
- Book details with images, tags, descriptions, ratings
- Bookshelf for managing favorite books## Technologies Used
- Android Jetpack Compose
- Modern app architecture
- Chaquopy (Python SDK)
- [Book Recommendation Algorithm](https://github.com/kieubaduong/Book-Recommendation-Algorithms)## Project Structure
```
├── core
├── data
│ ├── model
│ ├── network
│ │ ├── api
│ │ ├── auth
│ │ │ ├── body
│ │ │ └── result
│ └── repository
├── navigation
├── ui
│ ├── MainActivity.kt
│ ├── features
│ ├── common
│ └── theme
└── util
```The project follows the Clean Architecture principles, which separates the codebase into layers:
- `core`: Contains all type of class using across the application.
- `data`: Implements the data access layer + domain layer, including remote data sources, repositories and the business logic.
- `model`: Contains data class for the ui consume.
- `body`: Contains data class for the body HTTP request.
- `result`: Contains data class for the body HTTP result.
- `ui`: Implements the presentation layer, including view models and UI screens.
- `navigation`: Implements the navigation graph.
- `util`: Contains helper method and extensions.
- `features`: Contains main screen and viewmodel.## Screenshots
| | | |
| :-----------------------------------: | :------------------------------------: | :-------------------------------------: |
| Splash Screen | Sign In | Home Screen |
| ![](.github/screenshots/splash.jpg) | ![](.github/screenshots/login.jpg) | ![](.github/screenshots/home-page.jpg) |
| Book Detail | Rated Books | Saved Books |
|![](.github/screenshots/book-detail.jpg) | ![](.github/screenshots/rated-books.jpg) | ![](.github/screenshots/favorite-book.jpg) |
| Profile
| ![](.github/screenshots/profile.jpg)## Prerequisites
- Android Studio Hedgehog Canary 1 (2023.1.1.1) or higher
- Kotlin 1.8.10 or higher
- Android minSdk 30
- Python 3.8### Todo
- Dependency injection with Dagger & Hilt
## Contributors✨
![]()
Kieu Ba Duong
Mobile developer
ML researcher