Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ faveLib Public

A user-friendly library app to manage, track, and enjoy your favorite books!

cltxvz/faveLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 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:

    git clone https://github.com/cltxvz/favelib.git
  2. Navigate to the project folder:

    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! 📖✨