0% found this document useful (0 votes)
2 views10 pages

Project Proposal SimpleLibrary

The Simple Library Management System (SLMS) is a proposed desktop application developed in Java using JavaFX to address operational challenges faced by university and school libraries. The project aims to implement a secure, role-based interface for librarians to manage books, students, and borrowing records, while demonstrating the four pillars of Object-Oriented Programming. Key features include librarian authentication, book and student management, an issuing system with automatic fine calculation, and data persistence using plain text files.

Uploaded by

yasirdon1947
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views10 pages

Project Proposal SimpleLibrary

The Simple Library Management System (SLMS) is a proposed desktop application developed in Java using JavaFX to address operational challenges faced by university and school libraries. The project aims to implement a secure, role-based interface for librarians to manage books, students, and borrowing records, while demonstrating the four pillars of Object-Oriented Programming. Key features include librarian authentication, book and student management, an issuing system with automatic fine calculation, and data persistence using plain text files.

Uploaded by

yasirdon1947
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

IQRA UNIVERSITY

Department of Computer Science

PROJECT PROPOSAL
Simple Library Management System

Course Object-Oriented Programming (OOP) Lab

Program Bachelor of Computer Science

Submitted To Faraz Abdul Basit

University Iqra University

GROUP MEMBERS

# Student Name Roll Number


1 Tashfeen Imran IU04-0025-9003

2 Yasir Saleem IU04-0325-1700

3 Hafsa Bhimla IU04-0225-0950


1. Project Overview
The Simple Library Management System (SLMS) is a desktop application proposed to be developed in Java
using JavaFX for the graphical user interface. This project addresses common challenges faced in managing
a library at a university or school level. The system will provide a clean, role-based interface for a librarian to
manage books, students, and borrowing records efficiently.

The project is being proposed as the semester project for the Object-Oriented Programming (OOP) Lab
course. It has been specifically designed to apply and demonstrate all four pillars of OOP — Encapsulation,
Inheritance, Polymorphism, and Abstraction — in a practical, real-world scenario.

1.1 Problem Statement


University and school libraries managing hundreds or thousands of books face severe operational challenges
without a proper digital system. The following are the core problems this project aims to solve:
• No easy way to track which books are available versus currently borrowed
• Difficulty identifying which student has borrowed which book
• Overdue books go unnoticed, resulting in no fines being collected
• Adding, updating, and removing books requires tedious manual record-keeping
• No access control — any person can alter records without accountability

1.2 Proposed Solution


The proposed Simple Library Management System will be a fully functional desktop GUI application that
provides:
• A secure login system for librarians to authenticate before accessing any features
• A centralized dashboard showing real-time statistics of the library
• Complete book and student management with CRUD (Create, Read, Update, Delete) operations
• A controlled book issuing and returning workflow with automatic fine calculation
• Persistent data storage using plain text files — no external database required
2. Project Objectives
The following are the primary objectives of this project:
• Demonstrate all four pillars of Object-Oriented Programming in a fully working application
• Design and implement a functional desktop GUI using the JavaFX framework
• Enable librarians to perform CRUD operations on books and student records
• Implement a book issuing system that validates availability and per-student borrow limits (max 3
books)
• Implement an automatic overdue fine calculator (Rs. 5 per day after a 14-day lending period)
• Persist all application data to plain text files so records survive application restarts
• Follow the Model-View-Controller (MVC) design pattern for a clean, maintainable architecture
• Provide a user-friendly GUI with live search, filtering, and form validation

3. Project Scope
3.1 In Scope
• Librarian authentication (login / logout)
• Book management: add, edit, delete, search books by title, author, or category
• Student management: register, edit, delete, search students by name, ID, or department
• Issue book workflow with validation (availability check, 3-book limit per student)
• Return book workflow with automatic late fine calculation
• Records view: full issue/return history with active-issue filter
• Dashboard showing live counts: total books, students, active issues, overdue count
• Data persistence via plain text (.txt) files

3.2 Out of Scope


• Student-facing portal or student login — only the librarian uses the system
• Online or web-based access — this is a standalone desktop application
• Email or SMS notifications for overdue books
• Database integration (MySQL, SQLite, etc.)
• Multi-branch or multi-campus library support
• Report generation or PDF export
4. System Design
4.1 Architecture — MVC Pattern
The project will follow the Model-View-Controller (MVC) architectural pattern to ensure clean separation of
concerns and maintainable code. The three layers are defined as follows:

Layer Files Responsibility


Model [Link], [Link], Stores all data and enforces business rules
[Link], [Link], (e.g. cannot borrow beyond limit)
[Link]

View LoginView, DashboardView, Displays data on screen using JavaFX; handles


BookView, StudentView, all user interactions
IssueView, ReturnView,
RecordView, HomeView

Controller [Link] Coordinates between Model and View; contains


all business logic

Utility [Link] Reads and writes data to .txt files; generates


unique IDs

4.2 OOP Concepts to be Applied


The project is specifically structured to showcase the four pillars of OOP:

OOP Pillar Where Applied Description


Encapsulation [Link], [Link], All fields are private; access controlled
[Link], [Link] strictly via getters/setters

Inheritance Person (parent), Student (child), Student and Librarian inherit shared fields
Librarian (child) (id, name, email) from Person

Polymorphism getRole() in Person, Student, Same method name produces different


Librarian output based on runtime object type

Abstraction [Link] (abstract class) Abstract class with abstract getRole() —


cannot be instantiated directly

4.3 Class Structure


The system will consist of the following classes organized across four packages:

Class / File Package Role


[Link] library Application entry point; starts JavaFX and loads the
login screen

[Link] model Abstract parent class defining id, name, email and
abstract getRole()

[Link] model Extends Person; adds department and booksIssued;


enforces MAX_BOOKS = 3

[Link] model Extends Person; adds username and password;


handles authentication

[Link] model Stores book data; manages available copy count


safely

[Link] model Tracks a borrow transaction; calculates fine at Rs.


5/day after 14 days

[Link] controller Central business logic: login, CRUD, issue/return


operations

[Link] util Reads/writes all .txt data files; generates sequential


IDs (BK001, ST001)
5. Proposed Features
Feature Description
Login / Logout Secure login with username and password before accessing any
feature

Dashboard Displays live statistics: total books, students, active issues, overdue
count

Book Management Add, edit, delete, and search books by title, author, or category

Student Management Register, edit, delete, and search students by name, ID, or department

Issue Book Issue a book to a student; validates availability and 3-book borrow limit

Return Book Process a return; automatically calculates and displays any late fine
(Rs. 5/day after 14 days)

View Records Browse full issue/return history; filter to show only currently active
issues

Data Persistence All records saved to .txt files; data is restored every time the
application starts

6. Data Storage Design


No database will be used. All data will be stored in plain text (.txt) files inside a data/ folder automatically
created on first run. Each line represents one record, with fields separated by commas.

File Fields (comma-separated)


[Link] bookId, title, author, category, totalCopies, availableCopies

[Link] id, name, email, department, booksIssued

[Link] id, name, email, username, password

[Link] issueId, studentId, studentName, bookId, bookTitle, issueDate, dueDate,


returnDate, status, fine
7. Technologies & Tools
Technology / Tool Purpose
Java (JDK 17+) Core programming language for the entire application

JavaFX 21 GUI framework for windows, buttons, tables, dialogs, and forms

Eclipse IDE Primary development environment for coding, debugging, and running
the project

Plain Text Files (.txt) Persistent data storage — no external database required

Java Collections In-memory data structures for holding books, students, and issue
(ArrayList) records

Java Streams API Efficiently filtering and searching collections

[Link] Handling issue dates, due dates, and overdue calculations

8. Expected Application Flow


Ste Action Details
p
1 App Launch [Link] runs; LibraryController loads all data from .txt files into
memory

2 Login LoginView displayed; librarian enters credentials checked against


[Link]

3 Dashboard On success, DashboardView shows with sidebar navigation and live


statistics

4 Manage Books Add, edit, delete, or search books with auto-assigned IDs (BK001,
BK002, ...)

5 Manage Students Register, update, or delete students with auto-assigned IDs (ST001,
ST002, ...)

6 Issue Book Enter Student ID + Book ID; system validates availability and 3-book
limit; creates IssueRecord with 14-day due date

7 Return Book Enter Issue ID; system marks record RETURNED, calculates fine if
overdue, restores book copy count

8 View Records View full history; optionally filter to show only active (unreturned)
borrows

9 Data Saved Every operation automatically writes updated data to the relevant .txt
file
9. Planned Application Screens
# Screen Description
1 Login Screen Username and password fields; error message shown on incorrect
credentials

2 Dashboard / Home Statistics panel showing total books, students, active issues, and
overdue count

3 Book Management TableView of all books with Add, Edit, Delete buttons and live
search

4 Student Management TableView of all students with Add, Edit, Delete buttons and live
search

5 Issue Book Form with Student ID and Book ID fields; confirmation or error
feedback shown

6 Return Book Form to enter Issue ID; shows due date, return date, and
calculated fine

7 Records View Complete history of all issue/return transactions with active-issue


filter option

10. Anticipated Challenges & Mitigations


Anticipated Challenge Planned Mitigation
Configuring JavaFX with Eclipse (VM Follow official setup guide; document VM arguments in
arguments setup) README for team reference

Preventing negative book counts or Implement validation in LibraryController before any issue
exceeding borrow limit operation; use controlled setters in [Link]

Reliable data persistence across Use structured comma-separated format with


sessions toString()/fromString() in each model class; write after every
change

GUI updates not reflecting latest Use JavaFX ObservableList so TableViews refresh
data automatically when data changes

Implementing MVC without tightly All business logic routed through LibraryController; Views
coupling View and Model never access Model classes directly
11. Proposed Division of Work
Task / Module Member Description
Model Layer Tashfeen Imran Person, Student, Librarian, Book, IssueRecord
classes; all OOP pillar implementations

Controller & File I/O Yasir Saleem [Link] (all business logic) and
[Link] (data persistence)

View / GUI Layer Hafsa Bhimla All JavaFX view classes: Login, Dashboard, Book,
Student, Issue, Return, Records screens

Integration & Testing All Members Connecting all layers, edge-case testing,
documentation, and final report preparation

12. Proposed Timeline


Week Phase Deliverable
Week 1 Planning & Design Finalize class diagram, MVC architecture, and data file
formats

Week 2 Model Layer Implement all model classes (Person, Student, Librarian,
Book, IssueRecord)

Week 3 Controller & File I/O Implement LibraryController and FileHelper; unit test all
business logic

Week 4 GUI Development Build all JavaFX views; connect to Controller; test all
screens

Week 5 Integration & Testing End-to-end testing, bug fixing, edge-case validation,
README completion

Week 6 Final Report & Demo Submit complete report, prepare for viva/demo
presentation

13. Conclusion
The Simple Library Management System is a well-scoped, practically relevant desktop application that will
serve as an effective demonstration of all four Object-Oriented Programming pillars. The use of the MVC
design pattern ensures clean, maintainable code that is easy to test and extend.

This project will provide our team with valuable hands-on experience in Java application development,
JavaFX GUI design, software architecture, and the application of OOP principles beyond simple textbook
examples. We are confident that the proposed system will meet all academic requirements and deliver a
functional, polished product by the end of the semester.
— End of Proposal —

You might also like