Skip to content

RadhikaKapoor383/LibraryManagement

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š GoodRead Library Management System

A full-featured desktop Library Management System built with Java Swing and MySQL, designed to streamline day-to-day library operations for administrators, librarians, and patrons.


πŸ–₯️ Overview

The GoodRead Library Management System provides a complete solution for managing library resources. It supports multi-role access (Admin & Librarian), enabling efficient handling of books, members, and borrowing transactions through an intuitive GUI built with Java Swing and NetBeans.


✨ Features

πŸ‘¨β€πŸ’Ό Admin Panel

  • Secure admin login
  • Add, edit, and remove Librarians
  • Full oversight of all library operations

πŸ“– Book Management

  • Add new books with full details (Title, Author, Publisher, ISBN, Year)
  • Edit and update existing book records
  • Track book availability and stock count
  • View all books in a searchable table

πŸ‘₯ Patron Management

  • Register new patrons with personal and contact details
  • Edit patron profiles
  • Track borrowing history per patron
  • Manage borrow dates and return deadlines

πŸ›οΈ Librarian Portal

  • Dedicated librarian login and profile management
  • Manage patron records and book checkouts
  • View and update book status

πŸ” Search & View

  • Browse all books and filter by availability
  • View detailed book and patron profiles

πŸ—‚οΈ Project Structure

LibraryManagement/
β”‚
β”œβ”€β”€ source/goodread/library/        # All Java source & NetBeans form files
β”‚   β”œβ”€β”€ GoodReadLibrary.java        # Main entry point
β”‚   β”‚
β”‚   β”œβ”€β”€ MenuPage.java / .form       # Main menu UI
β”‚   β”œβ”€β”€ LogInPage.java / .form      # Librarian login
β”‚   β”œβ”€β”€ AdminLogIn.java / .form     # Admin login
β”‚   β”œβ”€β”€ Admin.java / .form          # Admin dashboard
β”‚   β”‚
β”‚   β”œβ”€β”€ AddBooks.java / .form       # Add new book
β”‚   β”œβ”€β”€ EditBooks.java / .form      # Edit book details
β”‚   β”œβ”€β”€ ManageBooks.java / .form    # Book management view
β”‚   β”œβ”€β”€ ViewBook.java / .form       # View single book
β”‚   β”œβ”€β”€ ViewingBooks.java / .form   # Browse all books
β”‚   β”‚
β”‚   β”œβ”€β”€ AddLibrarian.java / .form   # Add librarian
β”‚   β”œβ”€β”€ EditLibrarian.java / .form  # Edit librarian
β”‚   β”œβ”€β”€ ManageLibrarian.java / .form# Manage librarians
β”‚   β”œβ”€β”€ LibProfile.java / .form     # Librarian profile
β”‚   β”‚
β”‚   β”œβ”€β”€ AddPatrons.java / .form     # Add new patron
β”‚   β”œβ”€β”€ EditPatron.java / .form     # Edit patron info
β”‚   β”œβ”€β”€ ManagePatrons.java / .form  # Admin patron view
β”‚   β”œβ”€β”€ ManagePatronsLib.java / .form # Librarian patron view
β”‚   β”œβ”€β”€ newPatron.java / .form      # New patron form
β”‚   └── ViewProfile.java / .form    # View patron profile
β”‚
β”œβ”€β”€ sql/
β”‚   └── schema.sql                  # Full database schema & table definitions
β”‚
β”œβ”€β”€ .gitignore                      # Ignores build/, dist/, .class files
β”œβ”€β”€ build.xml                       # NetBeans Ant build file
β”œβ”€β”€ manifest.mf                     # JAR manifest
└── README.md

πŸ—„οΈ Database Setup

This project uses MySQL. Follow the steps below to set up the database.

1. Create the Database

CREATE DATABASE GoodRead;
USE GoodRead;

2. Create the books Table

CREATE TABLE books (
    sno           INT AUTO_INCREMENT PRIMARY KEY,
    BookID        VARCHAR(255) NOT NULL,
    BookTitle     VARCHAR(255) NOT NULL,
    Author        VARCHAR(255) NOT NULL,
    Publisher     VARCHAR(255),
    Year          INT,
    ISBN          VARCHAR(13),
    NumberOfBooks INT,
    Status        VARCHAR(50),
    Available     TINYINT(1)
);

3. Create the patrons Table

CREATE TABLE patrons (
    PatronID    INT AUTO_INCREMENT PRIMARY KEY,
    FirstName   VARCHAR(100),
    SecondName  VARCHAR(100),
    Email       VARCHAR(100),
    City        VARCHAR(100),
    Contact     VARCHAR(50),
    Address     TEXT,
    BookTitle   VARCHAR(200),
    borrowDate  TIMESTAMP,
    endDate     TIMESTAMP
);

4. Create the Librarian Table

CREATE TABLE Librarian (
    librarianID INT AUTO_INCREMENT PRIMARY KEY,
    Username    VARCHAR(100) NOT NULL UNIQUE,
    Password    VARCHAR(100) NOT NULL,
    FirstName   VARCHAR(100) NOT NULL,
    SecondName  VARCHAR(100),
    Address     TEXT,
    Email       VARCHAR(100) NOT NULL UNIQUE,
    City        VARCHAR(100),
    Contact     VARCHAR(50),
    CNIC        VARCHAR(20)
);

5. Configure the Database Connection

In the source code, locate the database connection class and update the credentials:

String url      = "jdbc:mysql://localhost:3306/GoodRead";
String username = "your_mysql_username";
String password = "your_mysql_password";

πŸ’‘ Make sure the MySQL JDBC Connector (mysql-connector-j) JAR is added to your project's library classpath in NetBeans.


βš™οΈ Prerequisites

Tool Version
Java (JDK) 8 or higher
NetBeans IDE 12+ (recommended)
MySQL Server 5.7 or higher
MySQL JDBC Driver mysql-connector-j

πŸš€ Getting Started

1. Clone the Repository

git clone https://github.com/RadhikaKapoor383/LibraryManagement.git
cd LibraryManagement

2. Set Up the Database

  • Open MySQL Workbench or any SQL client
  • Run all SQL statements from the Database Setup section above
  • Update the DB credentials in the source code

3. Open in NetBeans

  • Launch NetBeans IDE
  • Go to File β†’ Open Project and select the LibraryManagement folder
  • Add the MySQL JDBC Connector JAR to the project libraries:
    • Right-click project β†’ Properties β†’ Libraries β†’ Add JAR/Folder

4. Build & Run

  • Click Run β†’ Run Project (or press F6)
  • The application will launch starting at the Menu Page

πŸ“Έ Application Flow

MenuPage
   β”œβ”€β”€ Admin Login  β†’  Admin Dashboard
   β”‚                       β”œβ”€β”€ Manage Librarians (Add / Edit / Remove)
   β”‚                       └── Full System Access
   β”‚
   └── Librarian Login  β†’  Librarian Dashboard
                               β”œβ”€β”€ Manage Books    (Add / Edit / View)
                               └── Manage Patrons  (Add / Edit / Borrow / Return)

πŸ› οΈ Technologies Used

Layer Technology
Language Java
GUI Framework Java Swing (NetBeans Form Editor)
IDE Apache NetBeans
Build Tool Apache Ant (build.xml)
Database MySQL
DB Connectivity JDBC (MySQL Connector/J)

πŸ“„ License

This project is licensed under the terms of the LICENSE file included in this repository.


πŸ™‹β€β™€οΈ Author

Radhika Kapoor
GitHub: @RadhikaKapoor383


⭐ If you found this project helpful, please consider giving it a star on GitHub!

About

The Library Management System is a comprehensive tool designed to manage and streamline library operations. It helps in tracking book inventories, managing member information, and processing book checkouts and returns efficiently. This system aims to simplify library management and improve the overall user experience for both librarians and patrons

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages