An open API service indexing awesome lists of open source software.

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!

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**! πŸ“–βœ¨