A modern, browser-based application for tracking books you've read, inspired by Derek Sivers' book website (sive.rs/book). Store your book notes, ratings, and insights locally in your browser.
- 📚 Book Management: Add, edit, and delete book entries
- ⭐ Rating System: 5-star rating with visual feedback
- 📅 Date Tracking: Record when you read each book
- 📝 Notes: Capture key takeaways and insights
- 🖼️ Book Covers: Automatic cover fetching from Open Library API using ISBN
- 🔍 Sorting: Sort books by rating, date, or title
- 📊 Statistics: View total books and average rating
- 💾 Data Persistence: All data stored locally in browser localStorage
- 📤 Export/Import: Backup and restore your book data
- 🎨 Modern UI: Clean, responsive design with smooth animations
- Open
index.htmlin your web browser - The application will load with a welcome message
- Start by clicking "Add New Book" to add your first book
- Click the "Add New Book" button
- Fill in the required information:
- Title: Book title (required)
- Author: Book author (required)
- ISBN: Optional - used to fetch book cover automatically
- Date Read: When you finished the book (required)
- Rating: Click stars to rate (1-5)
- Notes: Key takeaways or memorable quotes
- Click "Save Book" to add it to your library
- Edit: Click the "Edit" button on any book card
- Delete: Click the "Delete" button on any book card
- Sort: Use the dropdown to sort by rating, date, or title
- Export: Click "Export Data" to download a JSON backup
- Import: Click "Import Data" to restore from a JSON backup
- Clear All: Remove all books (use with caution!)
- HTML5: Semantic markup and structure
- CSS3: Modern styling with CSS Grid, Flexbox, and CSS Variables
- JavaScript (ES6+): Vanilla JavaScript with no frameworks
- localStorage: Browser-based data persistence
- Open Library Covers API: For fetching book covers
Books are stored in localStorage with the following structure:
{
"books": [
{
"id": "unique-id",
"title": "Book Title",
"author": "Author Name",
"isbn": "optional-isbn",
"rating": 5,
"notes": "Key takeaways...",
"dateRead": "2024-12-25",
"coverUrl": "https://covers.openlibrary.org/b/isbn/9780132350884-M.jpg",
"createdAt": "timestamp"
}
]
}The application uses the Open Library Covers API:
- URL format:
https://covers.openlibrary.org/b/isbn/{ISBN}-M.jpg - Fallback to a default book cover image if no ISBN provided
- Images are loaded with error handling for missing covers
- Chrome 60+
- Firefox 55+
- Safari 11+
- Edge 79+
- Opera 47+
Booknotes/
├── index.html # Main HTML file
├── style.css # All CSS styles
├── script.js # Main JavaScript application
├── README.md # This documentation
└── (assets) # No external assets required
Simply open index.html in any modern web browser. No server or build process required.
- Modify CSS variables in
style.cssto change colors, spacing, etc. - Update constants in
script.jsto change default settings - Add new sorting options in the
sortBooks()function
Potential features for future development:
- Search/filter functionality
- Categories/tags for books
- Reading progress tracking
- Dark/light mode toggle
- Social sharing
- Goodreads integration
- Inspired by Derek Sivers' book notes
- Book covers from Open Library
- Icons from Font Awesome
- Fonts from Google Fonts
- Default book cover image from Unsplash
This project is open source and available for personal and educational use.
For issues or questions:
- Check the browser console for errors
- Ensure you're using a modern browser
- Clear browser cache if experiencing issues
- Export your data regularly as a backup
Happy Reading! 📚✨