Bookworm is an Android book discovery app that lets users browse a collection of books, search by title, view detailed book information, and save favorite books to a personal list. The app includes Firebase-based authentication and profile management to provide a simple, personalized reading experience.
- User registration and login
- Splash screen and clean navigation flow
- Browse a curated list of books
- Search books by title
- View book details, including author, category, cover image, and description
- Add books to a personal favorites list
- Remove books from favorites
- View and edit user profile information
- Firebase integration for authentication and stored user data
- Language: Java
- Platform: Android
- Build Tool: Gradle
- UI: XML layouts, AndroidX, Material Design
- Backend Services: Firebase Authentication, Firebase Realtime Database, Firebase Storage
- Image Loading: Glide
- Splash Screen
- Login
- Sign Up
- Home / Book List
- Book Details
- Favorites
- Profile
- Edit Profile
Bookworm/
|-- app/
| |-- src/main/java/com/example/bookworm/
| | |-- MainActivity.java
| | |-- LoginActivity.java
| | |-- SignUpActivity.java
| | |-- DetailsActivity.java
| | |-- FavoritesActivity.java
| | |-- ProfileActivity.java
| | |-- EditProfileActivity.java
| | |-- Book.java
| | `-- BookAdapter.java
| |-- src/main/res/
| |-- google-services.example.json
| `-- build.gradle
|-- build.gradle
|-- settings.gradle
`-- README.md
- Android Studio
- JDK 17 or later
- Android SDK with API level 34
- Firebase project configured for Android
-
Clone the repository:
git clone https://github.com/Shuruq-Althowaibi/Bookworm-Android-.git
-
Open the project in Android Studio.
-
Create a Firebase project and add an Android app with this package name:
com.example.bookworm -
Download your Firebase configuration file from the Firebase Console.
-
Place it in the app module:
app/google-services.jsonThe real
google-services.jsonfile is ignored by Git because it contains project-specific Firebase configuration. Useapp/google-services.example.jsononly as a safe reference. -
Sync the project with Gradle.
-
Run the app on an emulator or Android device.
To use authentication and favorites storage, enable the following services in Firebase:
- Authentication with email and password
- Realtime Database
- Storage, if profile image or file upload features are used
Make sure the Android package name in Firebase matches:
com.example.bookworm
- Do not commit
app/google-services.json. - Keep API keys and local configuration files out of version control.
- If a key is ever pushed publicly, rotate or restrict it in Google Cloud Console.
- Restrict Firebase API keys to the Android app package name and SHA certificate fingerprints when possible.
- Add book categories and advanced filters
- Connect to a real books API
- Add ratings and reviews
- Improve favorite sync and offline support
- Add dark mode support
This project was created for academic purposes as part of a university course. It is shared for learning and portfolio use only. Reuse, distribution, or modification is not permitted without permission from the author.
This project was developed as a collaborative academic effort by:
- Shuruq Althowaibi - @Shuruq-Althowaibi
- Re'am ALmutrafi - @REAM-02