You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Open Library Search API Project allows users to search for books and authors, view detailed information, and interact with a responsive, dark-mode-enabled UI. The app leverages Material-UI for styling and IndexedDB for efficient local data storage.
20
+
21
+
---
22
+
23
+
## Technology Stack
24
+
25
+
-**React** – UI library for building interactive interfaces
26
+
-**Vite** – Fast development/build tool
27
+
-**Material-UI** – Component library for consistent, accessible UI
28
+
-**Tailwind CSS** – Utility-first CSS framework for rapid styling
29
+
-**Open Library Search API** – Public API for books and authors data
30
+
-**IndexedDB (via idb)** – Client-side storage for caching search results
31
+
-**React Router** – Routing and navigation
32
+
33
+
---
4
34
5
35
## Features
6
36
7
-
- Search for authors by name
8
-
- Search for books
9
-
- Display detailed information about authors, including their bio, birth date, Wikipedia link, and official site (if available)
10
-
- Display detailed information about books, including author name, wants to read count, already red count, currently reading count (if available)
11
-
- Utilizes Material-UI for components and styling
12
-
- Responsive design with dark mode support
13
-
- Efficiently manages large data sets by storing search results in IndexedDB and retrieving them as needed
37
+
-**Search Authors**: Find authors by name and view their details.
38
+
-**Search Books**: Search for books and see author, title, and reading stats.
39
+
-**Author Details**: View author bio, birth date, Wikipedia, and official links.
40
+
-**Book Details**: See author, title, and reading statistics (want to read, already read, currently reading).
41
+
-**IndexedDB Caching**: Search results are cached locally for performance.
42
+
-**Material-UI & Tailwind Styling**: Responsive, accessible, and themeable UI.
43
+
-**Dark Mode Support**: Toggle between light and dark themes.
44
+
-**Responsive Design**: Works well on desktop and mobile devices.
45
+
-**Efficient Data Handling**: Handles large datasets and provides sorting/filtering.
46
+
47
+
---
48
+
49
+
## Project Structure & Navigation
50
+
51
+
The project is organized as follows:
52
+
53
+
```
54
+
src/
55
+
App.jsx # Main app component
56
+
index.css # Tailwind CSS imports
57
+
main.jsx # Entry point, sets up routing
58
+
Func/
59
+
CalcCounts.jsx # Utility functions for count formatting/styling
60
+
layouts/
61
+
Sidebar.jsx # Sidebar navigation component
62
+
Welcome.jsx # Welcome/landing page component
63
+
pages/
64
+
AuthorInfo.jsx # Author detail page
65
+
AuthorSearch.jsx # Author search page
66
+
BookSearch.jsx # Book search page
67
+
Home.jsx # Home page (renders Welcome)
68
+
```
14
69
15
-
## Technologies Used
70
+
-**Navigation**:
71
+
- The app uses React Router for navigation.
72
+
- The sidebar (`Sidebar.jsx`) provides quick access to book and author search pages.
73
+
- The welcome screen (`Welcome.jsx`) is shown on the home route (`/`).
74
+
- Search results and details are displayed on their respective pages under `/books/`, `/author/`, and `/author/:authorKey`.
16
75
17
-
- React
18
-
- Vite
19
-
- Material-UI
20
-
- Open Library Search API
21
-
- IndexedDB
76
+
---
22
77
23
78
## Setup
24
79
@@ -30,3 +85,25 @@ To get started with the project, follow these steps:
0 commit comments