Skip to content

rogx1ne/LMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

35 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Library Management System (LMS)

Version: 0.1 | Status: βœ… Pre-Production Ready | Date: 2026-04-09

A professional Java Swing desktop application for managing library operations with comprehensive book tracking, student management, circulation, and reporting.


πŸš€ Quick Start

For End Users (One-Time Setup)

⏱️ Total Time: ~4 minutes

  1. Extract the Package:

    Extract LMS-Setup.zip β†’ Creates LMS folder
    
  2. Read Quick Start (2 min):

    Open: QUICKSTART.txt
    
  3. Run Setup Wizard (2 min, one-time only):

    java -jar LMS-Setup.jar
    • Automated setup with 6 easy steps
    • Creates admin user with your credentials
    • Initializes database schema
    • Generates desktop shortcuts (optional)
  4. Launch Application (Every Time):

    # Windows: Double-click run.bat
    # Linux/Mac: Double-click run.sh or: ./run.sh
  5. Login & Use:

    • Username: ADMIN (or your chosen ID)
    • Password: Your setup password
    • System ready for library management!

πŸ“š For Detailed Help: Read APPLICATION_LAUNCH_GUIDE.md

For Developers (Building from Source)

# Clone repository
git clone <repo-url>
cd LMS

# Compile sources
javac -d bin src/com/library/**/*.java

# Run application
java -cp "bin:lib/*" com.library.Main

# Build setup wizard JAR
./package-setup.sh  # Creates LMS-Setup.jar (113 MB)

πŸ“‹ Features

βœ… Book Management

  • Add/edit books with accession numbers
  • Catalog management (title, author, edition, publisher)
  • Stock tracking and monitoring
  • Bill tracking and pricing
  • Search by title, author, ISBN

βœ… Student Management

  • Student registration with course details
  • Library card generation (automatic numbering)
  • Fee management and payment tracking
  • Issue limit control (per student)
  • ID card generation and printing

βœ… Circulation Management

  • Issue books to students/faculty
  • Automatic return processing
  • Fine calculation (β‚Ή1/day overdue)
  • Book condition tracking
  • Due date management (7 days default)
  • Issue/return history

βœ… Transaction Management

  • Seller registration and management
  • Purchase order creation
  • Bill entry and tracking
  • Auto-accession: Automatic book copy creation from bills
  • Bill reporting and exports

βœ… Admin & Reporting

  • User management (create/edit admin & librarian users)
  • Audit log viewing (complete action history)
  • PDF report generation (professional branding)
  • Excel data export and import
  • System configuration

βœ… Security

  • Role-based access control (ADMIN/LIBRARIAN)
  • SHA-256 password hashing
  • Comprehensive audit logging
  • User activity tracking
  • Secure session management

πŸ› οΈ System Requirements

Minimum Requirements

  • Java: Java 8 or higher (Java 26 tested)
  • Oracle Database: Oracle 10g XE or higher
  • RAM: 2GB minimum
  • Disk: 500MB for application + database space

Optional (for Containerized Database)

  • Podman/Docker: For running Oracle as container
  • Image: chameleon82/oracle-xe-10g:latest

Supported Operating Systems

  • βœ… Linux (Ubuntu, CentOS, Fedora, etc.)
  • βœ… Windows (7, 8, 10, 11)
  • βœ… macOS (Intel & Apple Silicon)

πŸ“¦ What's Included

Distribution Package (318 MB)

LMS-Setup.zip
└── LMS/
    β”œβ”€β”€ LMS-Setup.jar              (113MB setup wizard)
    β”œβ”€β”€ run.bat                    (Windows launcher)
    β”œβ”€β”€ run.sh                     (Linux/Mac launcher)
    β”œβ”€β”€ create-shortcut.bat        (Windows Desktop icon)
    β”œβ”€β”€ create-shortcut.sh         (Linux Desktop icon)
    β”œβ”€β”€ QUICKSTART.txt             (⭐ READ THIS FIRST!)
    β”œβ”€β”€ APPLICATION_LAUNCH_GUIDE.md (User guide)
    β”œβ”€β”€ FILES_REFERENCE.md         (File reference)
    └── lib/                       (200+ MB dependencies)

✨ What Users Get:

  • βœ… Complete LMS application
  • βœ… One-time setup wizard (fully automated)
  • βœ… Smart launchers (auto-validates Java, directories, database)
  • βœ… Desktop shortcuts (easy access)
  • βœ… Clear documentation (no CLI knowledge needed)
  • βœ… Production-grade setup (all 13 database tables)
  • βœ… Ready to use immediately after setup

Source Repository

LMS/
β”œβ”€β”€ src/                           (Java source code)
β”œβ”€β”€ bin/                           (compiled .class files)
β”œβ”€β”€ lib/                           (70MB+ JAR dependencies)
β”œβ”€β”€ script.sql                     (database schema - 13 tables)
β”œβ”€β”€ run.sh / run.bat               (application launchers)
β”œβ”€β”€ create-shortcut.sh/bat         (desktop icon generators)
β”œβ”€β”€ package-setup.sh               (build setup JAR script)
β”œβ”€β”€ LMS-Setup.jar                  (production setup wizard)
β”œβ”€β”€ README.md                      (this file)
β”œβ”€β”€ QUICKSTART.txt                 (one-page quick start)
β”œβ”€β”€ APPLICATION_LAUNCH_GUIDE.md    (user guide)
β”œβ”€β”€ LAUNCHER_GUIDE.md              (technical reference)
β”œβ”€β”€ DEPLOYMENT_PACKAGE.md          (distribution options)
β”œβ”€β”€ ARCHITECTURE.md                (system design)
β”œβ”€β”€ GUIDELINES.md                  (development standards)
└── docs/                          (detailed documentation)

πŸ—οΈ Architecture Overview

Four-Layer Architecture

UI Layer       β†’ Java Swing (LoginFrame, DashboardPanel, etc.)
Service Layer  β†’ Business logic (BookLogic, StudentLogic, etc.)
DAO Layer      β†’ Pure JDBC database access
Model Layer    β†’ Data transfer objects (Book, Student, etc.)
Database       β†’ Oracle 10g XE

Key Modules

  • Login Module: Authentication via TBL_CREDENTIALS table
  • Book Module: Catalog, stock, accession number management
  • Student Module: Registration, fees, library cards
  • Circulation Module: Issue/return with fine calculation
  • Transaction Module: Seller β†’ Order β†’ Bill β†’ Auto-accession workflow
  • Admin Module: User management, audit logs, reporting

For detailed architecture: See ARCHITECTURE.md


πŸ“– Documentation

For End Users

Document Purpose Read Time
QUICKSTART.txt Start here! One-page quick reference 2 min
APPLICATION_LAUNCH_GUIDE.md Detailed user guide with troubleshooting 5 min
FILES_REFERENCE.md What each file does 3 min

For System Administrators & IT

Document Purpose Read Time
LAUNCHER_GUIDE.md Technical reference for launchers 5 min
DEPLOYMENT_PACKAGE.md Distribution options (3 levels) 10 min
GUIDELINES.md Installation and deployment standards 10 min

For Developers

Document Purpose Read Time
ARCHITECTURE.md System design, layers, workflows 15 min
GUIDELINES.md Development standards & conventions 10 min
docs/CHANGELOG.md Complete project history 10 min
docs/SECURITY_AUDIT_REPORT.md Security analysis & hardening 15 min

Quick Links

  • πŸš€ Distributing to Users? β†’ DEPLOYMENT_PACKAGE.md
  • πŸ’» Windows Issues? β†’ LAUNCHER_GUIDE.md (Troubleshooting section)
  • πŸ”§ Production Deployment? β†’ GUIDELINES.md
  • πŸ”’ Security Questions? β†’ docs/SECURITY_AUDIT_REPORT.md
  • πŸ‘¨β€πŸ’» Modifying Code? β†’ ARCHITECTURE.md + GUIDELINES.md

πŸ—„οΈ Database Setup

Automatic (Recommended) βœ…

The setup wizard handles everything automatically:

  1. βœ… Connects to Oracle automatically
  2. βœ… Executes script.sql (creates all 13 tables)
  3. βœ… Creates essential sequences and triggers
  4. βœ… Creates admin user with your credentials
  5. βœ… Validates schema completely
  6. βœ… Ready to use immediately!

No manual SQL commands needed!

Manual Setup (Optional)

# Connect to Oracle
sqlplus PRJ2531H/PRJ2531H@XE

# Execute schema creation
@script.sql

# Exit
EXIT;

Database Details

  • URL: jdbc:oracle:thin:@localhost:1521:xe
  • User: PRJ2531H
  • Password: PRJ2531H
  • SID: xe (Express Edition)
  • Tables: 13 (automated creation by setup wizard)

Oracle via Container

# Start Oracle container
podman run -d --name oracle10g -p 1521:1521 \
  wnameless/oracle-xe-11g

# Verify running
podman ps | grep oracle

🎯 Common Tasks

First-Time User

  1. Run setup wizard β†’ Follow 6 steps β†’ Installation complete
  2. Launch application β†’ Login with your admin account
  3. Add student β†’ Admin Panel β†’ User Management
  4. Add book β†’ Book Management β†’ Add New Book
  5. Issue book β†’ Circulation β†’ New Issue

Admin Tasks

  • Create Users: Admin Panel β†’ User Management β†’ New User
  • View Audit Log: Admin Panel β†’ Audit Logs
  • Generate Reports: Circulation/Books β†’ Generate Report β†’ Export PDF
  • Import Data: Admin Panel β†’ Data Migration β†’ Import Excel

Librarian Tasks

  • Issue Book: Circulation β†’ New Issue β†’ Select Student β†’ Select Book
  • Return Book: Circulation β†’ Return Book β†’ Enter Details
  • Check Fines: Circulation β†’ Student History β†’ View Fines
  • Generate ID: Student Management β†’ Generate Library Card

πŸ”§ Troubleshooting

Setup Wizard Issues

"Database connection failed"

  • Check Oracle is running: podman ps | grep oracle
  • Start Oracle container if needed: podman run -d --name oracle10g -p 1521:1521 wnameless/oracle-xe-11g
  • Verify credentials: User=PRJ2531H, Pass=PRJ2531H, SID=xe

"ORA-00911: invalid character"

  • βœ… FIXED - Setup wizard now handles inline SQL comments correctly

"PLS-00103: Encountered the symbol /"

  • βœ… FIXED - Setup wizard now strips "/" before JDBC execution

"Admin user already exists"

  • Normal on fresh installs - admin user created automatically
  • Skip by clicking next in setup wizard

Application Launch Issues

"ClassNotFoundException"

  • Ensure bin/ folder contains compiled classes
  • Run setup wizard from correct directory
  • Check Java classpath: echo $CLASSPATH

"No suitable driver found for JDBC"

  • Verify lib/ojdbc6.jar exists
  • Check all JAR files in lib/ copied correctly
  • See LAUNCHER_GUIDE.md β†’ Troubleshooting

Application won't start on Windows

  • Double-click run.bat from LMS folder
  • If command prompt flashes and closes:
    1. Open command prompt manually
    2. Navigate to LMS folder
    3. Run: run.bat
    4. Error message will display
  • See LAUNCHER_GUIDE.md for Windows-specific help

Application won't start on Linux

  • Make script executable: chmod +x run.sh
  • Run: ./run.sh
  • Check Java installation: java -version
  • See LAUNCHER_GUIDE.md β†’ Linux Troubleshooting

"ORA-01882: timezone region not found"

  • βœ… FIXED - Launchers now include correct JVM flags
  • Launchers automatically set -Doracle.jdbc.timezoneAsRegion=false

More Help

Can't find answer?

  • Read APPLICATION_LAUNCH_GUIDE.md (user guide)
  • Read LAUNCHER_GUIDE.md (technical reference)
  • Check ARCHITECTURE.md (system design)
  • Review docs/CHANGELOG.md (what's been fixed)

πŸ“Š Sample Workflows

Issue a Book Workflow

1. Librarian opens Circulation Module
2. Clicks "New Issue"
3. Selects student from list
4. Searches and selects book
5. System auto-calculates due date (+7 days)
6. Confirms and prints receipt
7. Book status changes to "ISSUED"
8. Fine tracked if returned late (β‚Ή1/day)

Student Registration Workflow

1. Librarian opens Student Management
2. Clicks "Register New Student"
3. Enters: Roll #, Name, Course, Address, Phone, Fee
4. System auto-generates Library Card ID (PPU-YYxxx)
5. Issues library card
6. Creates ID card printout
7. Student can now borrow books

Admin Setup Workflow

1. Run java -jar LMS-Setup.jar
2. Welcome screen β†’ Click Next
3. Select installation path (default: /home/user/LMS)
4. System check (Java βœ…, Oracle βœ…)
5. Enter admin credentials (User ID, Password, Email, Phone)
6. Click Install β†’ Progress bar shows...
   - Copying bin/ (classes)
   - Copying lib/ (dependencies)
   - Creating launcher scripts
   - Executing database schema
   - Creating admin user
7. Complete β†’ Application installed at chosen location
8. Run ./run.sh to start application

πŸ”’ Security Features

βœ… Authentication:

  • Login with User ID + Password
  • SHA-256 password hashing
  • Role-based access (ADMIN/LIBRARIAN)

βœ… Authorization:

  • Admin-only functions protected
  • User actions logged for audit

βœ… Audit Trail:

  • All book transactions logged
  • User actions tracked with timestamp
  • Viewable in Admin Panel

βœ… Data Protection:

  • Oracle 10g encryption support available
  • Secure JDBC connection
  • No plain-text credentials in code

πŸ“ˆ Performance Characteristics

Metric Value Notes
Users 1-10 concurrent Suitable for small-medium libraries
Books Unlimited Index performance: <1s for 100k books
Transactions ~50/day Tested on Oracle XE
Report Generation 5-30 seconds Depends on dataset size
Memory Usage ~200MB Running application
Database Size ~100MB+ Depends on data volume

Capacity Planning

  • 10,000 books: 50MB database
  • 5,000 students: 30MB database
  • 100k transactions: 200MB database
  • 5 years audit logs: 500MB logs

πŸš€ Deployment Options

Option 1: Standalone Installation (Recommended for Most)

  • Extract ZIP to desktop/laptop
  • Run setup wizard
  • Choose installation folder
  • Works offline after initial setup

Option 2: Server Deployment

  • Extract ZIP to server directory
  • Run setup wizard on server
  • Share Oracle database connection
  • Multiple users can access from network

Option 3: Container Deployment (Advanced)

  • Deploy in Docker/Podman container
  • Share volume with Oracle container
  • Orchestrate with docker-compose
  • See: docs/PODMAN_SETUP_GUIDE.md

πŸ“ License & Support

Project Status: βœ… Pre-Production Ready (v0.1)

Latest Release: April 9, 2026

What's Production Ready:

  • βœ… Setup wizard with automated database initialization
  • βœ… SQL parser fixes (inline comments, PL/SQL blocks)
  • βœ… Smart launchers with validation (Java, directories, database)
  • βœ… Desktop shortcut generators (Windows & Linux)
  • βœ… All 13 database tables created automatically
  • βœ… Admin user creation automated
  • βœ… Comprehensive error handling
  • βœ… User-friendly documentation

Support & Documentation:

  • πŸ“– User Guide: APPLICATION_LAUNCH_GUIDE.md
  • πŸš€ Quick Start: QUICKSTART.txt
  • πŸ”§ Launcher Help: LAUNCHER_GUIDE.md
  • πŸ“¦ Distribution: DEPLOYMENT_PACKAGE.md
  • πŸ—οΈ Architecture: ARCHITECTURE.md
  • πŸ“Š Complete history: docs/CHANGELOG.md
  • πŸ”’ Security: docs/SECURITY_AUDIT_REPORT.md

πŸŽ“ Learning Path

For End Users (Just Want to Use LMS)

  1. Extract LMS-Setup.zip (1 min)
  2. Read QUICKSTART.txt (2 min)
  3. Run java -jar LMS-Setup.jar (2 min)
  4. Launch run.bat or run.sh and start using (ongoing)
  5. Questions? Read APPLICATION_LAUNCH_GUIDE.md

Total Setup Time: ~5 minutes

For System Administrators (Installing for Others)

  1. Read DEPLOYMENT_PACKAGE.md (understand 3 distribution options)
  2. Read LAUNCHER_GUIDE.md (understand how launchers work)
  3. Follow DEPLOYMENT_PACKAGE.md steps to package distribution
  4. Test on Windows machine
  5. Test on Linux machine
  6. Distribute LMS-Setup.zip to your users
  7. Reference LAUNCHER_GUIDE.md for troubleshooting

For Developers (Modifying Code)

  1. Read ARCHITECTURE.md (understand system design)
  2. Read GUIDELINES.md (understand coding standards)
  3. Explore src/ folder (study existing code)
  4. Read docs/CHANGELOG.md (understand recent changes)
  5. Make modifications following guidelines
  6. Test in local installation
  7. Build new JAR: ./package-setup.sh
  8. Commit with clear messages

πŸš€ Ready to Get Started?

For Users

# 1. Extract
unzip LMS-Setup.zip
cd LMS

# 2. Read quick start (2 minutes)
cat QUICKSTART.txt

# 3. Run setup (2 minutes, one-time)
java -jar LMS-Setup.jar

# 4. Launch application
./run.sh  # or run.bat on Windows

# ✨ Done! Enjoy LMS!

For Distributors

# See DEPLOYMENT_PACKAGE.md for:
# - What files to include
# - 3 distribution options
# - Step-by-step packaging
# - Email template for users

For Developers

# 1. Understand architecture
cat ARCHITECTURE.md

# 2. Understand standards
cat GUIDELINES.md

# 3. Start coding following the guidelines

❓ FAQ

Q: How long does setup take? A: About 2 minutes! Run java -jar LMS-Setup.jar and follow the wizard.

Q: Do I need to know the command line? A: No! Everything is automated. Just extract, run setup, click launch. No CLI needed.

Q: Can I run on Windows? A: Yes! Just double-click run.bat after setup.

Q: Can I run on Linux/Mac? A: Yes! Just run ./run.sh after setup.

Q: What database do I need? A: Oracle (10g XE or higher). Setup wizard handles everything.

Q: Can multiple users access simultaneously? A: Yes, the system is designed for 1-10 concurrent users.

Q: What if setup fails? A: Read APPLICATION_LAUNCH_GUIDE.md or LAUNCHER_GUIDE.md β†’ Troubleshooting.

Q: Can I backup my data? A: Yes, use Oracle backup tools or export from Admin Panel.

Q: Is LMS secure? A: Yes! Includes password hashing, role-based access, audit logging. See docs/SECURITY_AUDIT_REPORT.md.

Q: What if I forget the admin password? A: Run setup wizard again to create a new admin user.

Q: Can I access from mobile? A: Currently desktop-only. Future enhancement planned.

Q: What are the system requirements? A: Java 8+ and Oracle database. See System Requirements section above.


πŸ“ž Getting Help

Problem? Follow this order:

  1. Setup/Launch Problems? β†’ APPLICATION_LAUNCH_GUIDE.md
  2. Windows Issues? β†’ LAUNCHER_GUIDE.md (Windows section)
  3. Linux/Mac Issues? β†’ LAUNCHER_GUIDE.md (Linux section)
  4. Installation/Distribution? β†’ DEPLOYMENT_PACKAGE.md
  5. Architecture Questions? β†’ ARCHITECTURE.md
  6. Development Questions? β†’ GUIDELINES.md
  7. Still Stuck? β†’ Check docs/CHANGELOG.md (what's been fixed)

πŸŽ‰ You're Ready!

Quick Summary

βœ… Setup: Run java -jar LMS-Setup.jar (2 min, one-time) βœ… Launch: Double-click run.bat or run.sh βœ… Use: Login and start managing your library βœ… Help: Read QUICKSTART.txt or APPLICATION_LAUNCH_GUIDE.md

Next Steps

  1. Extract LMS-Setup.zip
  2. Read QUICKSTART.txt (2 min)
  3. Run java -jar LMS-Setup.jar
  4. Launch the application
  5. Enjoy! πŸ“š

✨ Latest Features (v0.1)

Fixed & Production Ready:

  • βœ… SQL parser now handles inline comments correctly
  • βœ… PL/SQL parser now handles "/" correctly
  • βœ… Launchers auto-validate Java, directories, database
  • βœ… Desktop shortcut creation (one-click access)
  • βœ… Setup wizard completely automated
  • βœ… Admin user created automatically
  • βœ… Comprehensive error messages
  • βœ… Professional user guides included
  • βœ… Ready for end-user distribution

Next Release Planned:

  • πŸ”œ Mobile app support
  • πŸ”œ Connection pooling for larger deployments
  • πŸ”œ Enhanced reporting features

Enjoy LMS! πŸ“š

About

Digital Library Management System is my final year project.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors