Skip to content

Commit 84bc018

Browse files
committed
readme update
1 parent 8416090 commit 84bc018

3 files changed

Lines changed: 92 additions & 16 deletions

File tree

README.md

Lines changed: 91 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,79 @@
11
# Open Library Search API Project
22

3-
This project is a React application built with Vite, providing an interface to search for authors and books using the Open Library Search API.
3+
A modern React application built with Vite, providing a user-friendly interface to search for authors and books using the Open Library Search API.
4+
5+
---
6+
7+
## Table of Contents
8+
9+
- [Project Overview](#project-overview)
10+
- [Technology Stack](#technology-stack)
11+
- [Features](#features)
12+
- [Project Structure & Navigation](#project-structure--navigation)
13+
- [Setup](#setup)
14+
15+
---
16+
17+
## Project Overview
18+
19+
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+
---
434

535
## Features
636

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+
```
1469

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`.
1675

17-
- React
18-
- Vite
19-
- Material-UI
20-
- Open Library Search API
21-
- IndexedDB
76+
---
2277

2378
## Setup
2479

@@ -30,3 +85,25 @@ To get started with the project, follow these steps:
3085
git clone https://github.com/MetinVn/Open-Library-Search-API.git
3186
cd Open-Library-Search-API
3287
```
88+
89+
2. **Install dependencies:**
90+
91+
```sh
92+
npm install
93+
```
94+
95+
3. **Run the development server:**
96+
97+
```sh
98+
npm run dev
99+
```
100+
101+
4. **Build for production:**
102+
103+
```sh
104+
npm run build
105+
```
106+
107+
---
108+
109+
For more details, see the source files in the [`src/`](src) directory.

src/layouts/Sidebar.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ const Sidebar = ({ colors }) => {
3939
ref={sidebarRef}
4040
className="fixed top-0 left-[50%] transform -translate-x-1/2 z-[16]">
4141
<Box
42-
className={`flex flex-row rounded-b-md w-[30%] min-w-fit mx-auto items-center transition-all duration-300 ease-in-out ${
42+
className={`flex flex-row w-[30%] min-w-fit mx-auto items-center transition-all duration-300 ease-in-out ${
4343
isExpanded
4444
? "h-fit mt-20 sm:h-[60px] sm:mt-0 md:h-[80px] py-4"
4545
: "h-0 py-0"

src/pages/Home.jsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import React from "react";
21
import Welcome from "../layouts/Welcome.jsx";
32
export default function Home() {
43
return (

0 commit comments

Comments
 (0)