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

https://github.com/unni8230/bookhub

BookHub is a responsive React web app that lets users explore books by category, search titles, and view detailed infoβ€”all powered by JWT authentication and dynamic API integration.
https://github.com/unni8230/bookhub

javascript jwt-authentication mern-stack react react-router responsive-design rest-api styled-components

Last synced: 2 months ago
JSON representation

BookHub is a responsive React web app that lets users explore books by category, search titles, and view detailed infoβ€”all powered by JWT authentication and dynamic API integration.

Awesome Lists containing this project

README

          

# πŸ“š BookHub
[![Live Site](https://img.shields.io/badge/Live%20Site-unnibookhub.ccbp.tech-blue)](http://unnibookhub.ccbp.tech)

**BookHub** is a responsive React-based web application that fetches and displays books from an external API. Users can browse books by category, search for specific titles, and view detailed informationβ€”all within a clean, intuitive UI.

![React](https://img.shields.io/badge/React-18-blue?logo=react)
![MERN Stack](https://img.shields.io/badge/MERN-Full%20Stack-blueviolet?logo=mongodb)
![Status](https://img.shields.io/badge/status-Active-brightgreen)

---

## πŸš€ Features

- πŸ” **Login Authentication** with JWT
- πŸ“š **Bookshelves View** categorized by genres
- πŸ” **Search Functionality** to find books by title
- πŸ“„ **Book Details Page** with cover, author, rating, and description
- πŸ”„ **API Integration** to fetch book data dynamically
- πŸ’… **Responsive Design** for mobile and desktop

---

## πŸ› οΈ Tech Stack

| Tool | Purpose |
|------------------|------------------------------------|
| React | Front-end UI framework |
| React Router DOM | Client-side routing |
| JWT | Authentication token handling |
| REST API | Fetching book data |
| CSS | Styling and layout |

---

## πŸ“‚ Folder Structure

```
src/
β”œβ”€β”€ components/ # Reusable UI components
β”œβ”€β”€ App.js # Main app and routing logic
β”œβ”€β”€ index.js # Entry point
β”œβ”€β”€ App.css # Global styles
└── setupTests.js # Test configuration
```

---

## βš™οΈ Getting Started

```bash
# Clone the repo
git clone https://github.com/Unni8230/BookHub.git

# Navigate into the project
cd BookHub

# Install dependencies
npm install

# Start the development server
npm start
```

> πŸ›  If you're using Node.js v17+, run:
> ```bash
> export NODE_OPTIONS=--openssl-legacy-provider
> ```

---
## πŸ” Demo Credentials

Use the following credentials to explore the app:

- **Username:** rahul
- **Password:** rahul@2021

> These credentials are for demo purposes only and provide access to the full app experience.
---
## πŸ“Έ Screenshots

### πŸ” Login Page (Desktop)
![Login](https://res.cloudinary.com/dyareetre/image/upload/v1751468007/Bookhub_Login_bqsihn.png)

### πŸ” Login Page (Mobile)
![Login](https://res.cloudinary.com/dyareetre/image/upload/v1751468006/Bookhub_Login_sm_me9icm.png)

### πŸ“± Home Page (Desktop)
![Home](https://res.cloudinary.com/dyareetre/image/upload/v1751468006/Bookhub_Home_s0gpu2.png)

### πŸ“± Home Page (Mobile)
![Home](https://res.cloudinary.com/dyareetre/image/upload/v1751468006/Bookhub_Home_sm_ocqydu.png)

### πŸ“š Bookshelf Page
![Bookshelves](https://res.cloudinary.com/dyareetre/image/upload/v1751468006/Bookhub_shelf_m4wfgq.png)

### πŸ“– Book Item Details Page
![BookDetails](https://res.cloudinary.com/dyareetre/image/upload/v1751468006/Bookhub_Item_lqttoa.png)

---

## πŸ” Authentication Flow

- Users must log in to access the main app
- JWT is stored securely and validated on protected routes
- Unauthenticated users are redirected to the login page

---

## πŸ™Œ Credits

Built with ❀️ by [Unni](https://github.com/Unni8230) as part of a React learning journey. Inspired by the love for books and clean UI design.

---