BookShelf is a modern web app to manage your personal library, take notes about books, and track your reading progress.
- Complete book management (add, edit, delete)
- Book details include:
- Title and author
- ISBN (optional)
- Read date
- Rating (1-5 stars)
- Review (optional)
- Open Library integration for automatic book covers
- Chapter-based note-taking system
- Key takeaways marking in notes
- Sort by title, rating, and read date
- Responsive and modern interface
- Light/dark theme with smooth animations
- Accessibility features including:
- High contrast mode support
- Reduced motion preferences
- Keyboard navigation
- Screen reader compatibility
- Focus indicators
- Semantic HTML structure
- Node.js (version 14 or higher)
- PostgreSQL (version 12 or higher)
- NPM or Yarn
book-notes/
├── public/
│ ├── styles.css # Global styles
│ └── js/
│ └── theme.js # Light/dark theme management
├── views/
│ ├── index.ejs # Home page (book list)
│ ├── book-detail.ejs # Book details and notes
│ ├── edit-book.ejs # Edit form
│ └── partials/
│ ├── header.ejs # Common header
│ └── footer.ejs # Common footer
├── index.js # Server and routes
└── README.md
- Backend:
- Node.js
- Express.js
- PostgreSQL
- EJS (templates)
- Frontend:
- HTML5
- CSS3 (with CSS variables for theming)
- JavaScript (Vanilla)
- APIs:
- Open Library (for book covers)
- Responsive design that works on mobile and desktop
- Light/dark theme system with smooth transitions
- Book cards with hover effects
- Accessible and well-structured forms
- Font Awesome icons for better visual experience
- Visual feedback for user interactions
The project uses two main tables:
books: Stores book informationnotes: Stores book-related notes
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
This project is licensed under the MIT License - see the LICENSE file for details.