← Back to projects

Library

FastAPIPythonNext.jsTypeScriptPostgreSQLSQLAlchemyTailwind CSSJWT

A comprehensive library management platform designed for efficient book inventory and lending operations. Features a public-facing book catalog with integrated PDF reader for online reading, category-based browsing and search, and community ratings and reviews. Behind the admin panel, librarians manage the complete book lifecycle: create and edit book metadata, upload PDFs and cover images, issue books to patrons with borrower tracking, record returns with patron ratings and reviews, and view actionable analytics. The platform distinguishes between free and premium books, maintains a protected 'Free Books' category, and provides real-time lending history with status filters.

Reader Features

  • •Browse public catalog with category filters and keyword search
  • •View detailed book pages with cover, description, and community ratings
  • •Read PDFs online with embedded PDF reader — no download required
  • •Download and read free books without account registration
  • •Leave ratings (1–5 stars) and reviews on borrowed books
  • •Access borrow history and track book return dates

Librarian Features

  • •Comprehensive admin dashboard with key metrics and analytics
  • •View top-5 books by borrow count and active lending data
  • •Full CRUD for books: create, edit, publish, and archive
  • •Manage book categories with one protected 'Free Books' category
  • •Upload PDF files and cover images for each book
  • •Issue books to patrons: track name, phone, email, passport, and notes
  • •Record returns with patron ratings and review text
  • •Search and filter patrons by borrow status (active, returned, all)

Technical Stack

  • •Backend: Python 3.11+, FastAPI, SQLAlchemy 2 ORM, PostgreSQL
  • •Frontend: Next.js 14 (App Router), TypeScript, Tailwind CSS
  • •Authentication: JWT with bcrypt password hashing
  • •Database migrations: Alembic with versioned schema and seed data
  • •PDF handling: embedded reader for online viewing and download support
  • •Single-admin model: first registered user becomes admin, future registrations blocked