Skip to content

This is a Book Search Engine, which can help you get recommendations, save books and add notes to them.

License

Notifications You must be signed in to change notification settings

shefreenkaur/BookSearchEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Book Search and Exploration Platform

Description

A modern, personalized book discovery application built with the MERN stack (MongoDB, Express.js, React.js, Node.js). Features include book searching, saving, personal notes, and an AI-powered chatbot assistant for recommendations. Features

  1. Advanced book search using OpenLibrary API
  2. User authentication and account management
  3. Personal book collection management
  4. Note-taking functionality for saved books
  5. book recommendation chatbot Responsive, user-friendly interface image

Technologies Used

  1. Frontend: React.js, Apollo Client, React Bootstrap
  2. Backend: Node.js, Express.js, GraphQL, Apollo Server
  3. Database: MongoDB
  4. Authentication: JWT (JSON Web Tokens)
  5. APIs: OpenLibrary API
  6. Chatbot: FastAPI, Python

Installation

Clone the repository:

git clone [repository-url]
cd book-search

Install dependencies:

Install root dependencies

npm install

Install client dependencies

cd client
npm install

Install server dependencies

cd ../server
npm install

Set up environment variables:

Create a .env file in the server directory:

MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret

Set up the chatbot:

cd server/chatbot
python -m venv venv
source venv/bin/activate  

On Windows:

Please check requirements.txt

venv\Scripts\activate
pip install <requirements.txt>

Start the development servers:

Start main application (from root directory)
npm run develop

Start chatbot server (optional)

cd server/chatbot python -m uvicorn main:app --reload --port 8000

Access the application:

  1. Main application: http://localhost:3000
  2. GraphQL playground: http://localhost:3001/graphql
  3. Chatbot API: http://localhost:8000 image

Features Details

Book Search

  1. Search by title, author, or keywords
  2. View detailed book information
  3. Save books to personal collection
  4. Personal Notes

Add notes to saved books

mutation AddBookNote($bookId: String!, $note: String!) {
addBookNote(bookId: $bookId, note: $note) {
  savedBooks {
    bookId
    notes {
      content
      createdAt
    }
  }
}
}

image

AI Chatbot

Get book recommendations Ask about specific books Receive personalized suggestions

API Reference

OpenLibrary API The application uses OpenLibrary's search API: https://openlibrary.org/search.json?q={searchTerm}

GraphQL Endpoints

Search books
query SearchBooks($searchTerm: String!) {
  searchBooks(searchTerm: $searchTerm) {
    books {
      bookId
      title
      authors
      description
    }
  }
}

Save a book

mutation SaveBook($bookInput: SaveBookInput!) {
  saveBook(book: $bookInput) {
    _id
    savedBooks {
      bookId
      title
    }
  }
}

Contributing

Fork the repository Create a feature branch Commit your changes Push to the branch Submit a pull request

License

MIT

Acknowledgments

  1. OpenLibrary API for book data
  2. Original MERN project creators
  3. MongoDB Atlas for database hosting

Author

Shefreen Kaur

Contact

GitHub: shefreenkaur Email: shefreenkaur@gmail.com

About

This is a Book Search Engine, which can help you get recommendations, save books and add notes to them.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •