"Your personal library to manage, track, and enjoy your favorite books!"
faveLib is an interactive web-based library management system that allows users to manage their personal book collection efficiently. Whether you're an avid reader, a book collector, or someone who wants to keep track of their reading habits, faveLib offers an intuitive interface to add, edit, categorize, rate, search, and export/import your books with ease.
-
Stack: HTML, CSS, JavaScript
-
Core Libraries/Tools:
- LocalStorage API
- FileReader API
- Blob API
-
Version Control: Git & GitHub
-
Object-Oriented Programming (OOP):
Implemented with classes and objects for modular and reusable code. -
Data Structures:
Arrays for managing the book collection and categories. -
Algorithms:
Search and sort algorithms for efficient filtering and organization of the book list. -
State Management:
- Dynamic UI updates via JavaScript DOM manipulation.
- State persistence with the LocalStorage API to retain data across sessions.
-
Error Handling:
- JSON validation during library import.
- User feedback for invalid inputs in forms.
- Responsive Design:
- Adaptive layout using CSS Grid and Flexbox for a seamless experience across devices.
- Mobile-friendly modals and form layouts to enhance usability.
This app is hosted on GitHub Pages, so you can start using it directly via the provided link.
Feel free to use the provided JSON file sample_books.json on this repo if you don't want to start with an empty library!
- Click the "Add New Book" button.
- Fill out the form with the following details:
- Title
- Author
- Category
- Rating
- Read Status
- Favorite Status
- Click "Add Book" to save it to your library.
- Click the "Edit" button on a book card.
- Modify any fields as needed.
- Click "Edit Book" to save the changes.
- Click on the "Delete" button to permanently remove a book.
-
Search:
Enter a title or author name in the search bar. -
Filter:
Filter books by:- All
- Read
- Unread
- Favorites
-
Sort:
Sort books by:- Name
- Rating
- Category
- Date (Oldest/Newest)
-
Import:
Load a previously saved JSON file to restore your library. -
Export:
Save your library as a JSON file for backup or sharing.
- Click "Empty Library" to reset the library.
- Add/Edit/Delete Books
- Dynamic Filtering and Sorting
- Custom Categories
- LocalStorage Persistence
- Import/Export JSON
- Responsive Design
- Book Count Display
-
User Authentication:
Personalized libraries for each user. -
External API Integration:
Integration with book APIs such as Google Books API to fetch book details automatically. -
Enhanced Analytics:
Provide insights into reading habits and trends. -
Cloud Synchronization:
Enable cross-device synchronization with cloud storage.
-
Clone the repository:
git clone https://github.com/cltxvz/favelib.git
-
Navigate to the project folder:
cd favelib -
Open the
index.htmlfile in your browser to start managing your personal library!
Carlos A. Cárdenas
Feel free to reach out for collaboration or feedback!
If you like this project, ⭐ star the repository and contribute to its growth. 🚀
Thank you for checking out faveLib! 📖✨