Skip to content

Mih-Nig-Afe/Personal-Library-Management-System

Repository files navigation

Personal Library Management System

A Django-based personal library management system with a SQLite backend, full CRUD for books, borrowing/returning workflows, search & filtering, and reporting dashboards. The web UI is the primary frontend, and the admin panel provides advanced management capabilities.

Project Goal

Build a system that manages a personal book collection with complete CRUD operations, intelligent search, basic borrowing/returning logic, and reporting. The implementation uses a SQLite database and a Django frontend.

Core Features

  • Book management (create, view, update, delete)
  • Borrowing and returning flows
  • Search by title, author, ISBN, description
  • Filter by genre, availability, and publication year range
  • Borrow history and active borrowing lists
  • Reports: genre stats, overdue books, totals
  • Admin dashboard with inline borrow records and bulk actions

Screenshot

Dashboard

Requirement Compliance (Summary)

  • SQLite storage: enabled via Django SQLite backend
  • Two related tables: Book and BorrowRecord
  • CRUD for books: implemented via Django views/forms
  • Search by title/author/genre/year range: implemented in list view
  • Safe delete: only when all copies are available
  • Borrow/return logic: implemented with availability checks
  • Borrowed books list: shows who borrowed and when
  • Reports: popular genres, overdue, totals

For a detailed, line-by-line compliance check, see docs/STATUS_CHECK.md.

Tech Stack

  • Django 4.2 (Web framework)
  • SQLite (database)
  • django-crispy-forms + crispy-bootstrap5 (UI forms)
  • django-filter (filtering)
  • django-tables2 (tabular output)
  • pytest + pytest-django (tests)
  • django-debug-toolbar (development)

Project Structure

library/           # Core library app (models, views, forms, admin)
reports/           # Reporting app (dashboards and analytics)
library_project/   # Django project settings and URLs
templates/         # Shared templates (base layout)
static/            # CSS/JS assets
media/             # Uploaded media
/docs/             # Documentation

Setup (Local)

  1. Create and activate a virtual environment.
  2. Install dependencies from requirements.txt.
  3. Apply migrations and create a superuser.
  4. Run the development server.

Optional sample data:

  • Run the load_sample_data management command to seed the database.

Docker

Container support is included via a Dockerfile and docker-compose.

Admin Site

The admin interface includes:

  • Inline BorrowRecord history on each Book
  • Availability/status badges
  • Bulk action to mark records as returned
  • Filter/search controls for fast auditing

Full admin usage notes: docs/ADMIN_SITE.md.

Documentation Index

License

This project is provided for educational purposes.

About

Personal Library Management System built with Django and SQLite. CRUD, borrowing/returning, search, and reporting dashboards.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors