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

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.

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.