Back to Portfolio

Library Management System

Full-Stack Web Development2024

A modern full-stack library management platform built with React 19 and Django REST Framework — supporting book browsing, borrowing, reservations, and a full admin dashboard with member and borrowing management.

Library Management System

The Problem

Traditional library systems often rely on manual processes or outdated software that lacks modern UX, role-based access, and real-time availability tracking. Members have no easy way to browse, reserve, or manage their borrowings online, while librarians struggle to track members, debt, and active loans efficiently.

Problem illustration

The Solution

A full-stack web application that digitalizes the entire library workflow. Members can browse and search the catalog, borrow and return books, make reservations, and manage their profiles — all secured with Django session-based authentication. Administrators get a dedicated dashboard for managing books, members, borrowings, debt, and blacklisting.

Member Portal

Members can browse the full catalog with full-text search and filters, view detailed book info, borrow and return books, reserve unavailable titles, and manage their profiles and borrowing history.

Admin Dashboard

Admins have a dedicated panel with overview stats, full book CRUD with cover image uploads, member management (view, blacklist, clear debt), and borrowing management with return processing.

Secure Auth & API

Authentication is handled via Django sessions with CSRF protection and cookie-based flow. The backend exposes a clean REST API covering auth, books, borrowing, reservations, and admin operations.

Architecture & Features

Decoupled frontend (React SPA via Vite) and backend (Django REST API) communicating over a proxied /api route. PostgreSQL is used as the primary database, and Vite's dev proxy ensures seamless session cookie sharing.

  • Frontend: React 19 + Vite 8 + React Router 7 + Axios + Lucide React + Swiper
  • Backend: Django 6.2 + Django REST Framework 3.14 + django-cors-headers
  • Database: PostgreSQL 17
  • Auth: Django session authentication + CSRF tokens + cookie-based flow
  • API: RESTful endpoints for auth, books, borrow, reserve, and admin operations
  • Dev Proxy: Vite proxies /api to Django backend for unified origin and session sharing

Technologies Used

React 19Vite 8React Router 7AxiosLucide ReactSwiperDjango 4.2Django REST FrameworkPostgreSQLPythondjango-cors-headersSession Auth / CSRF

Future Improvements

  • Add JWT-based authentication for stateless API consumption and mobile apps.
  • Implement email notifications for due dates, reservation confirmations, and overdue reminders.
  • Add fine/penalty calculation for overdue borrowings with automated debt tracking.
  • Develop a mobile app version using React Native with the same Django backend.
  • Integrate book recommendations using collaborative filtering based on borrowing history.
  • Add multilingual support (Arabic, English, Turkish) for wider accessibility.
Library Management System | Abdulrahman Hamdi