https://github.com/juliasouz/book-notes
A modern web app to manage your personal library, take notes about books, and track your reading progress.
https://github.com/juliasouz/book-notes
ejs express-js javascript nodejs postgresql sql
Last synced: 7 days ago
JSON representation
A modern web app to manage your personal library, take notes about books, and track your reading progress.
- Host: GitHub
- URL: https://github.com/juliasouz/book-notes
- Owner: juliasouz
- License: mit
- Created: 2025-04-03T15:02:45.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-10T18:06:46.000Z (12 months ago)
- Last Synced: 2025-04-11T00:19:05.168Z (12 months ago)
- Topics: ejs, express-js, javascript, nodejs, postgresql, sql
- Language: EJS
- Homepage:
- Size: 2.66 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BookShelf - Your Personal Reading Tracker
BookShelf is a modern web app to manage your personal library, take notes about books, and track your reading progress.
## Features
- 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
## Requirements
- Node.js (version 14 or higher)
- PostgreSQL (version 12 or higher)
- NPM or Yarn
## Project Structure
```
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
```
## Technologies Used
- **Backend:**
- Node.js
- Express.js
- PostgreSQL
- EJS (templates)
- **Frontend:**
- HTML5
- CSS3 (with CSS variables for theming)
- JavaScript (Vanilla)
- **APIs:**
- Open Library (for book covers)
## Interface Features
- 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
## Database
The project uses two main tables:
- `books`: Stores book information
- `notes`: Stores book-related notes
## Contributing
Contributions are welcome! Feel free to:
1. Report bugs
2. Suggest new features
3. Submit pull requests
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.