Book Nest is a native Android application built with modern Android development practices. It serves as an online bookstore and reading application where users can browse, discover, and read books in various categories seamlessly.
- Browse by Category: Explore books across multiple genres including Programming, Classic Literature, Mystery, Psychology, and more.
- Read In-App: Directly read and view PDF books right within the application.
- Dynamic Content: Books are synced and served dynamically from Firebase Realtime Database.
- Modern UI: A clean, responsive, and beautiful UI built entirely with Jetpack Compose using Material Design 3 guidelines.
- Data Processor: Includes Python scripts to easily manage, categorize, and deploy large lists of book data into Firebase.
Architecture: MVVM (Model-View-ViewModel) + Clean Architecture principles UI Toolkit: Jetpack Compose Programming Languages:
- Kotlin (Android App)
- Python (Data processing scripts)
Libraries & Tools:
- Hilt - Dependency Injection
- Firebase - Realtime Database & Firestore for backend data
- Navigation Compose - App navigation and routing
- Coil - Asynchronous image loading
- Retrofit & Gson - Type-safe HTTP client & JSON serialization
- Bouquet - Open-source PDF viewer for Jetpack Compose
- Pandas - Python library for CSV data manipulation
app/- The main Android application code.Ui_layer/- Contains Jetpack Compose UI components, Screens, and Navigation graphs.ViewModel/- Contains the ViewModels binding the UI and data layer.Data/- Contains Repositories and Response models.di/- Contains Hilt modules for Dependency Injection.
books.py- A Python script designed to process raw CSV book data (new data1.csv), categorize them intelligently, and convert them to Firebase-compatiblebooks.json.books.json/e-book-763b5-default-rtdb-export.json- JSON backups for the Firebase Realtime Database.
- Android Studio Ladybug or later recommended.
- JDK 17
- Python 3.x (Optional, only if you want to run the data scripts).
-
Clone the repository:
git clone https://github.com/Tarun-sharma05/Book-Nest.git
-
Open the project in Android Studio:
- Select
Open an existing Android Studio projectand point to the cloned directory.
- Select
-
Firebase Setup:
- Make sure you have your own
google-services.jsoninside theapp/folder connected to your Firebase project. - Import the
e-book-763b5-default-rtdb-export.jsonfile into your Firebase Realtime database.
- Make sure you have your own
-
Run the App:
- Sync the project with Gradle files.
- Choose your emulator or physical device.
- Click
Run 'app'.
If you have a customized CSV of book data and want to convert it to a Firebase-ready JSON file:
- Ensure Python
pandasis installed. - Edit
books.pywith the correct path to your CSV. - Run
python books.py. - Import the generated
books.jsonstraight into your Firebase Realtime Database.
Contributions, issues, and feature requests are welcome!
This project is open-source and available under the terms of the MIT License.