8000 GitHub - Zmerrill1/BookTracking: Book Tracking & Recommendation - PDM Project #2
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Zmerrill1/BookTracking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 ReadRadar

This is a FastAPI + Streamlit project that allows users to search for books, track their reading, and receive AI-generated book recommendations.

Live Demo

Checkout the live application on Streamlit: ReadRadar

Table of Contents

  1. Features
  2. API Endpoints
  3. Installation & Setup
  4. Tech Stack
  5. Future Features
  6. License
  7. Acknowledgments

🚀 Features

  • 📖 Search Books: Search for books using the Google Books API.

    Book Search
  • 📚 Track Your Reads: Save books to a personal reading list.

    Saved Books
  • 🤖 AI Recommendations: Get book recommendations based on your interests.

    AI Recommendations
  • 📊 Interactive UI: A user-friendly interface built with Streamlit.

📡 API Endpoints

🔍 Book Search

GET /google-books/search?q={query}`

Searches for books using the Google Books API.

  • Query Params: term (book title, author, or keyword)
  • Response: Returns a list of the top 10 or so matching books.

📚 User Library

POST /user-books/

Adds a book to the user's personal collection.

  • Body:
    {
      "title": "Book Name",
      "author": "Author",
    }
  • Response: Returns the saved book details.

GET /user-books/

Retrieves all books in the user's saved collection.

DELETE /user-books/{user_id/{book_id}/

Removes a book from the collection. Response: { "message": "Book deleted successfully" }

🤖 AI Recommendations

POST /recommendations/

Generates book recommendations based on a user's saved books.

-Body:

{ "books": ["Book 1", "Book 2"] }

Response: A list of recommended books.

🤖 AI-Powered Book Recommendations

This app uses Marvin AI to generate personalized book recommendations.

How It Works:

  1. The user saves books they’ve read or are interested in.
  2. The backend sends this data to the AI recommendation system.
  3. The AI suggests books based on themes, genres, and patterns.

Example Output:

{
  "recommendations": [
    { "title": "The Hobbit", "author": "J.R.R. Tolkien" },
    { "title": "The Name of the Wind", "author": "Patrick Rothfuss" }
  ]
}

🎯 Installation & Setup

  1. Clone the Repository:

    git clone https://github.com/Zmerrill1/book-tracker.git
    cd book-tracker
  2. Set Up Backend (FastAPI): Ensure you have Python installed, then create a virtual environment:

    uv venv

    Install dependencies:

      uv sync

    Set up environment variables:

      cp .env.example .env 

    Then edit .env with your API keys and database settings.

    Run database migrations:

    alembic upgrade head

    Start the FastAPI server:

      uvicorn app.main:app --reload
  3. Set Up Frontend (Streamlit): This will be in a separate concurrent terminal. Navigate to the frontend directory and install dependencies:

    cd frontend
    uv sync

    Run the Streamlit app:

      streamlit run app.py

🛠️ Tech Stack

To deploy updates:

  • For backend:
    flyctl deploy
  • For frontend if linked to Streamlit cloud:
    git push origin main

🔥 Future Features

  • 📅 Reading progress tracking
  • 🏆 Challenges & goals
  • 📝 Contributing

📄 License

This project is licensed under the MIT License.

Acknowledgements


Feel free to suggest any improvements or share your feedback by logging an issue against this repo!

About

Book Tracking & Recommendation - PDM Project #2

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages

0