Full-Stack / WebExhibited

LIBRARY MANAGEMENT SYSTEM

Containerised Flask Library Catalogue with CRUD Operations

Flask · SQLite · Docker · User Auth · CRUD Catalogue

The Problem Statement

Small libraries and academic reading rooms manage catalogues through spreadsheets or manual card systems that offer no search, no access control, and no update workflow accessible to staff or users from a browser. This Flask-based library management system replaces that workflow with a web-accessible CRUD catalogue, multi-role user authentication, and Docker containerisation for one-command deployment. It acts as the practical middle ground between a paper catalogue and a full ILS (Integrated Library System), delivering the essential features without the infrastructure overhead.

The Architecture Layout

The application is a Python Flask monolith with a SQLite database for catalogue and user data persistence. The database module initialises the SQLite schema on startup, with separate tables for users and books. Flask routes are organised into auth (login, register, logout), catalogue (index, add, update, delete), and user dashboard handlers. Session management uses Flask's built-in session with secure token signing. The HTML template layer uses Jinja2 with a base.html layout and page-specific template inheritance. Static assets (CSS, images) are served directly by Flask in development. A Dockerfile packages the app with all Python dependencies (requirements.txt) into a portable image, and a .dockerignore excludes non-essential files from the build context.

Architecture Design Diagram

LIBRARY MANAGEMENT SYSTEM System Architecture

System Process Flow

User Actions──>Interface State──>Core Processing Logic
Database Persistent Layer<── Response Loop ──>Dynamic UI Updates