https://github.com/cltxvz/favelib
A user-friendly library app to manage, track, and enjoy your favorite books!
https://github.com/cltxvz/favelib
book-tracker css data-structures github-pages html interactive-ui javascript library-management local-storage object-oriented-programming responsive-design search-filter sorting web-application
Last synced: 5 months ago
JSON representation
A user-friendly library app to manage, track, and enjoy your favorite books!
- Host: GitHub
- URL: https://github.com/cltxvz/favelib
- Owner: cltxvz
- Created: 2024-12-23T17:17:45.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-03T18:46:30.000Z (11 months ago)
- Last Synced: 2025-03-20T04:49:51.471Z (10 months ago)
- Topics: book-tracker, css, data-structures, github-pages, html, interactive-ui, javascript, library-management, local-storage, object-oriented-programming, responsive-design, search-filter, sorting, web-application
- Language: JavaScript
- Homepage: https://cltxvz.github.io/faveLib/
- Size: 35.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π faveLib
"Your personal library to manage, track, and enjoy your favorite books!"
---
## π Description:
**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.
---
## π οΈ Technologies Used:
- **Stack:** HTML, CSS, JavaScript
- **Core Libraries/Tools:**
- LocalStorage API
- FileReader API
- Blob API
- **Version Control:** Git & GitHub
---
## π Skills & Concepts Applied:
- **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.
### **UI/UX Design Skills:**
- **Responsive Design:**
- Adaptive layout using CSS Grid and Flexbox for a seamless experience across devices.
- Mobile-friendly modals and form layouts to enhance usability.
---
## π Instructions on How to Use faveLib:
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!
### **Features & How to Use Them:**
#### **Add a New Book:**
1. Click the "Add New Book" button.
2. Fill out the form with the following details:
- Title
- Author
- Category
- Rating
- Read Status
- Favorite Status
3. Click "Add Book" to save it to your library.
#### **Edit a Book:**
1. Click the "Edit" button on a book card.
2. Modify any fields as needed.
3. Click "Edit Book" to save the changes.
#### **Delete a Book:**
1. Click on the "Delete" button to permanently remove a book.
#### **Search, Filter, & Sort:**
- **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/Export Library:**
- **Import:**
Load a previously saved JSON file to restore your library.
- **Export:**
Save your library as a JSON file for backup or sharing.
#### **Clear Library:**
1. Click "Empty Library" to reset the library.
---
## π Features:
- **Add/Edit/Delete Books**
- **Dynamic Filtering and Sorting**
- **Custom Categories**
- **LocalStorage Persistence**
- **Import/Export JSON**
- **Responsive Design**
- **Book Count Display**
---
## π Ideas for Future Improvements:
- **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.
---
## π How to Run the Project Locally:
1. Clone the repository:
```bash
git clone https://github.com/cltxvz/favelib.git
```
2. Navigate to the project folder:
```bash
cd favelib
```
3. Open the `index.html` file in your browser to start managing your personal library!
---
## π€ Author:
**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**! πβ¨