title: BookQuest
emoji: ๐
colorFrom: blue
colorTo: yellow
sdk: docker
sdk_version: 3.1.1
app_file: app.py
pinned: false
BookQuest: Adventure in Finding Great Reads
BookQuest is an intelligent book recommendation platform that helps you discover your next favorite read. Whether you're looking for classics, trending titles, or personalized suggestions, BookQuest makes finding great books effortless and enjoyable.
Problem Statement
Finding the right book can be overwhelming with the sheer volume of options available. Readers often struggle to:
- Discover books tailored to their interests
- Get reliable recommendations
- Explore new genres and authors
- Connect with a modern, user-friendly interface
BookQuest solves these challenges by providing curated lists, smart recommendations, and a beautiful, intuitive experience.
Features
- Top 50 Books: Instantly browse the most popular and highly rated books
- Personalized Recommendations: Get book suggestions based on your favorite titles
- Modern UI: Clean, responsive design with a focus on readability and ease of use
- Contact Form: Reach out for support or suggestions directly from the app
- Live Search: Quickly find books by title
- Robust Backend: Powered by Flask and machine learning models for accurate recommendations
- Email Notifications: Contact form uses EmailJS for instant communication
Tech Stack
- Frontend & Application: Flask, Bootstrap, HTML/CSS, Jinja2
- Backend: Python, Pandas, Numpy, Scikit-learn
- Recommendation Engine: Collaborative filtering using similarity scores
- Email Integration: EmailJS (client-side)
- Deployment: Docker, Hugging Face Spaces
Getting Started
Prerequisites
- Python 3.8 or later
- pip (Python package manager)
- (Optional) Docker for containerized deployment
Installation
Clone the repository:
git clone https://github.com/zaiffishiekh01/BookQuest.git cd BookQuestInstall required packages:
pip install -r requirements.txtCreate a
.envfile in the project root with your EmailJS credentials:SECRET_KEY=your-secret-key-here VITE_EMAILJS_PUBLIC_KEY=your-public-key-here VITE_EMAILJS_SERVICE_ID=your-service-id-here VITE_EMAILJS_TEMPLATE_ID=your-template-id-here
Running the Application
Start the Flask app:
flask run --host=0.0.0.0 --port=7860
Or use Docker:
docker build -t bookquest .
docker run -p 7860:7860 bookquest
The application will be available at http://localhost:7860.
Usage Guide
Home Page (Top 50 Books)
- Browse the most popular books with cover images, authors, ratings, and more.
- Click on any book for more details.
Recommendations
- Enter a book title you like and get a list of similar books instantly.
- Each recommendation includes cover, author, year, and publisher.
Contact Us
- Use the contact form to send feedback or questions.
- EmailJS integration ensures your message is delivered instantly.
Environment Variables
For security, do not share your actual .env file. Use this template:
SECRET_KEY=your-secret-key-here
VITE_EMAILJS_PUBLIC_KEY=your-public-key-here
VITE_EMAILJS_SERVICE_ID=your-service-id-here
VITE_EMAILJS_TEMPLATE_ID=your-template-id-here
Hugging Face Spaces Integration
When deploying on Hugging Face Spaces, use their Secret Management for your environment variables:
- Go to your Space settings
- Add each variable from your
.envfile as a secret - Hugging Face Spaces will make these available to your app
Troubleshooting
- Email Not Sending: Check your EmailJS credentials and template IDs
- Book Data Not Loading: Ensure you have internet access to fetch remote model files
- Docker Issues: Make sure Docker is installed and running
- UI Problems: Clear your browser cache or try a different browser
About the Developer
Developed by Muhammad Huzaifa Saqib (zaiffi), passionate about building AI-powered tools for readers and learners.
- GitHub: zaiffishiekh01
- LinkedIn: Muhammad Huzaifa Saqib
- Email: huzaifasaqib420@gmail.com
Enjoy your journey to great reads with BookQuest! ๐

.png)
.png)
.png)
.png)