BookShelf App is an Android application that lets users search for books, view book details, leave reviews, add books to favorites, and view example categories of books. The app uses Firebase's Firestore database service to store user and book data and the Google Books API to search for books and retrieve book data.
BookShelf is an Android app that allows users to search for books, view book details, leave reviews, add books to favorites, and view example categories of books. The app uses Firestore, a No-SQL database service provided by Google, to store user and book data. The app also uses the Google Books API to search for books and retrieve book data.
Please note that the app is currently under development and bugs may be present. Bug reports and suggestions are welcome. The app also requires active internet connection to function properly.
Feature | Description | Status |
---|---|---|
Dark Mode | 🌑 Add a dark mode theme to the app | ✅ Completed |
Book Recommendations | 📚 Add a feature that recommends books based on user preferences | ⏳ Not Started |
Social Sharing | 🤝 Add a feature that allows users to share books with friends | ⏳ Not Started |
Bookshelf | 📖 Add a feature that allows users to create their own bookshelves | ⏳ Not Started |
Book Clubs | 📚👥 Add a feature that allows users to create book clubs | ⏳ Not Started |
Notifications | 🔔 Add a feature that notifies users of new books, reviews, and other events | ⏳ Not Started |
Multilingual Support | 🌐 Add support for multiple languages | ⏳ Not Started |
Offline Mode | 📴 Add support for offline mode | ⏳ Not Started |
The app utilizes Firestore, a document-based database, which allows for more flexibility and scalability in terms of data organization and querying.
In order to help with understanding the data structure and organization of the app, a sample of the JSON data used in the app is provided below
JSON data structure
{
"users": [
{
"displayName": "",
"user_id": "",
"avatar": "",
"shelves": [
{
"name": "Reading",
"books": [
{
"book_id": 1,
"title": "",
"author": "",
"summary": "",
"cover_image": ""
},
{
"book_id": 2,
"title": "",
"author": "",
"summary": "",
"cover_image": ""
}
]
},
{
"name": "Have Read",
"books": [
{
"book_id": 1,
"title": "",
"author": "",
"summary": "",
"cover_image": ""
},
{
"book_id": 2,
"title": "",
"author": "",
"summary": "",
"cover_image": ""
}
]
},
{
"name": "To Read",
"books": [
{
"book_id": 1,
"title": "",
"author": "",
"summary": "",
"cover_image": ""
},
{
"book_id": 2,
"title": "",
"author": "",
"summary": "",
"cover_image": ""
}
]
}
],
"search_history": [
"book_id1",
"book_id2"
],
"reviews": [
{
"book": {
"book_id": 1,
"title": "",
"author": "",
"summary": "",
"cover_image": ""
},
"rating": 4.5,
"review_text": ""
},
{
"book": {
"book_id": 2,
"title": "",
"author": "",
"summary": "",
"cover image": ""
},
"rating": 4.5,
"review_text": ""
}
],
"favourites": [
{
"book_id": 1,
"title": "",
"author": "",
"summary": "",
"cover_image": ""
},
{
"book_id": 2,
"title": "",
"author": "",
"summary": "",
"cover_image": ""
}
]
}
]
}
Diagram Representation of the JSON Data Structure
The app uses Firebase Authentication to handle user authentication. The app uses email/password authentication and Google authentication.
Technologies Used:
To install the app, clone the repository and open the project in Android Studio. The app can be run on an emulator or a physical device.
This project is licensed under the GNU GENERAL PUBLIC LICENSE - see the LICENSE file for details.
If you have any questions or suggestions, feel free to contact me on Twitter or LinkedIn. You can also raise an issue on the repository.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
If you like the project, please consider supporting it by giving it a star ⭐️.