https://github.com/bazzomir/book-search-app
A web app that lets users search for books by title, author, or genre.
https://github.com/bazzomir/book-search-app
bootstrap csv-data json-data reactjs
Last synced: about 2 months ago
JSON representation
A web app that lets users search for books by title, author, or genre.
- Host: GitHub
- URL: https://github.com/bazzomir/book-search-app
- Owner: Bazzomir
- Created: 2024-07-09T18:30:54.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-04T12:48:26.000Z (10 months ago)
- Last Synced: 2025-09-08T09:45:56.626Z (9 months ago)
- Topics: bootstrap, csv-data, json-data, reactjs
- Language: JavaScript
- Homepage: https://bazzomir.github.io/book-search-app/
- Size: 1.88 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Book Search Web Page
A web app that lets users search for books by Title, Author, or Genre. It merges book data from JSON and CSV files and displays it in a sortable, searchable format. The default sorting is by Author's name. The app is responsive and user-friendly.
### Features
- Search:
- Users can enter a query, and JavaScript filters results dynamically.
- Sorting:
- Dropdown to sort books by Title, Author (default), or Genre.
- Responsive Design:
- Works on desktop and mobile.
- Styling:
- Uses Bootstrap for a modern UI.
- No Results Handling:
- Displays a 'No results found' message if no matches.
- Highlighting Matches:
- Matching search terms appear bold and red.
- Data Merging:
- Combines book data from books.json and books.csv via a unique id field.
## Technologies Used
- React 18+
- JavaScript
- Bootstrap
- JSON
- CSV
### Installation
1. Clone the repository
```bash
git clone https://github.com/Bazzomir/book-search-app.git
cd book-search-app
```
2. Install dependencies
```bash
npm install
```
3. Start the development server
```bash
npm start
```
## Usage
- Use the search bar to filter books.
- Select sorting order from the dropdown.
- Results update dynamically.