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 year 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 (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-16T23:01:32.000Z (about 2 years ago)
- Last Synced: 2025-03-31T06:22:47.288Z (about 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: 7
- Watchers: 1
- Forks: 2
- 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 |
|  |  |  |
| Book Detail | Rated Books | Saved Books |
| |  |  |
| Profile
| 
## 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