BookFinder is a modern and professional Book Search application built with FastAPI backend and HTML/CSS/JavaScript frontend. It allows users to easily search for books by title, author, or publisher, and displays results in a clean, RTL-friendly, and visually appealing interface.
-
Search books by:
- Title
- Author
- Publisher
-
Modern card-style results with hover effect
-
Dark mode with sleek design
-
Smooth animations when cards appear
-
Fully responsive for desktop and mobile
-
CORS enabled for easy frontend-backend integration
-
Works with a simple JSON file as book database
BookFinder/
├─ backend/
│ ├─ main.py # FastAPI backend
│ ├─ books.json # Book database
│ └─ requirements.txt # Python dependencies
├─ frontend/
│ ├─ index.html # Frontend interface
│ └─ styles.css # Stylesheet
└─ README.md
- Install Python if not already installed
- Install required packages from
requirements.txt:
pip install -r backend/requirements.txt- Run the FastAPI server:
uvicorn backend.main:app --reload- The server runs by default at:
http://127.0.0.1:8000 - Search endpoint:
/search-books?q=<search_term>
- Navigate to the
frontend/folder - Open
index.htmlin your browser (double-click or use Live Server in VSCode) - Use the search box to query books from the backend
⚠ Note: Ensure both frontend and backend are running on localhost and CORS is enabled for proper communication.
- Books are stored in
books.json - Sample structure:
[
{
"title": "Book One",
"author": "Author One",
"publisher": "Publisher One"
},
{
"title": "Book Two",
"author": "Author Two",
"publisher": "Publisher Two"
}
]- Simply add new entries to make them searchable.
- Add pagination for large result sets
- Display book cover images
- Include featured or recommended books on the homepage
- Enhance UI with additional animations or Material Design
- Dark/Light mode toggle
- Connect to a real database instead of JSON for production
- Frontend and backend are decoupled – can be developed independently
- Project is suitable for demo, portfolio, or small applications
- CORS enabled allows frontend to query backend from any domain
MIT License