Karun Singampalli / Portfolio
Data science · Library intelligence

LibraryPulse

Understand borrowing patterns. Explore collection usage. Make the next library decision with evidence.

A portfolio showcase for the Smart Library ML Platform: a Python project combining library-data ingestion, feature engineering, hybrid recommendations, and a Streamlit dashboard.

Demo, not a production deployment. The interactive view below uses 1,200 deterministic, fictional borrowing records generated in your browser. It does not run the Python models or connect to a real library. No personal information, accounts, or API keys are needed.

Interactive demo · January–June 2024

Collection & circulation

Choose a month and genre to compare usage. Every metric and chart follows the same filters.

—
Checkouts
—
Distinct borrowers
—
Titles borrowed
—
Mean loan days

Monthly checkouts

Genre mix

Most borrowed titles

Popularity within your selected records—not personalized ML recommendations. Fictional titles; usage alone is not an acquisition recommendation.

Top 8 titles by checkout count
TitleGenreCheckouts
Real-world application

Who could use this?

Public-library staff

Review changes in borrowing and category usage. Combine these insights with holds, copy counts, and librarian judgment before acquisition decisions.

Academic librarians

Explore demand around a semester. A pilot would need course calendars, reliable catalog metadata, and approved institutional data.

Collection managers

Investigate popular and overlooked subjects. Branch transfers and demand forecasts are future extensions, not implemented features of this demo.

Behind the interface

The Python repository contains CSV/synthetic ingestion, temporal and behavioral features, and a hybrid engine using ALS, SVD, TF-IDF, and optional BERT components. FastAPI exposes recommendation, similar-book, explanation, and health endpoints; Streamlit provides the original application interface.

This static companion runs on GitHub Pages alongside the portfolio. Hosting the Python application is a separate step. Benchmark results are not yet published in the repository, and some monitoring paths use simulated values.