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.
β±οΈ Total Time: ~4 minutes
-
Extract the Package:
Extract LMS-Setup.zip β Creates LMS folder -
Read Quick Start (2 min):
Open: QUICKSTART.txt -
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)
-
Launch Application (Every Time):
# Windows: Double-click run.bat # Linux/Mac: Double-click run.sh or: ./run.sh
-
Login & Use:
- Username:
ADMIN(or your chosen ID) - Password: Your setup password
- System ready for library management!
- Username:
π For Detailed Help: Read APPLICATION_LAUNCH_GUIDE.md
# 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)- 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 registration with course details
- Library card generation (automatic numbering)
- Fee management and payment tracking
- Issue limit control (per student)
- ID card generation and printing
- 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
- Seller registration and management
- Purchase order creation
- Bill entry and tracking
- Auto-accession: Automatic book copy creation from bills
- Bill reporting and exports
- 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
- Role-based access control (ADMIN/LIBRARIAN)
- SHA-256 password hashing
- Comprehensive audit logging
- User activity tracking
- Secure session management
- Java: Java 8 or higher (Java 26 tested)
- Oracle Database: Oracle 10g XE or higher
- RAM: 2GB minimum
- Disk: 500MB for application + database space
- Podman/Docker: For running Oracle as container
- Image:
chameleon82/oracle-xe-10g:latest
- β Linux (Ubuntu, CentOS, Fedora, etc.)
- β Windows (7, 8, 10, 11)
- β macOS (Intel & Apple Silicon)
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
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)
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
- 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
| 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 |
| 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 |
| 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 |
- π 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
The setup wizard handles everything automatically:
- β Connects to Oracle automatically
- β
Executes
script.sql(creates all 13 tables) - β Creates essential sequences and triggers
- β Creates admin user with your credentials
- β Validates schema completely
- β Ready to use immediately!
No manual SQL commands needed!
# Connect to Oracle
sqlplus PRJ2531H/PRJ2531H@XE
# Execute schema creation
@script.sql
# Exit
EXIT;- URL:
jdbc:oracle:thin:@localhost:1521:xe - User:
PRJ2531H - Password:
PRJ2531H - SID:
xe(Express Edition) - Tables: 13 (automated creation by setup wizard)
# Start Oracle container
podman run -d --name oracle10g -p 1521:1521 \
wnameless/oracle-xe-11g
# Verify running
podman ps | grep oracle- Run setup wizard β Follow 6 steps β Installation complete
- Launch application β Login with your admin account
- Add student β Admin Panel β User Management
- Add book β Book Management β Add New Book
- Issue book β Circulation β New Issue
- 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
- 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
"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
"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.jarexists - Check all JAR files in
lib/copied correctly - See
LAUNCHER_GUIDE.mdβ Troubleshooting
Application won't start on Windows
- Double-click
run.batfrom LMS folder - If command prompt flashes and closes:
- Open command prompt manually
- Navigate to LMS folder
- Run:
run.bat - Error message will display
- See
LAUNCHER_GUIDE.mdfor 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
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)
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)
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
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
β 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
| 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 |
- 10,000 books: 50MB database
- 5,000 students: 30MB database
- 100k transactions: 200MB database
- 5 years audit logs: 500MB logs
- Extract ZIP to desktop/laptop
- Run setup wizard
- Choose installation folder
- Works offline after initial setup
- Extract ZIP to server directory
- Run setup wizard on server
- Share Oracle database connection
- Multiple users can access from network
- Deploy in Docker/Podman container
- Share volume with Oracle container
- Orchestrate with docker-compose
- See:
docs/PODMAN_SETUP_GUIDE.md
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
- Extract LMS-Setup.zip (1 min)
- Read QUICKSTART.txt (2 min)
- Run java -jar LMS-Setup.jar (2 min)
- Launch run.bat or run.sh and start using (ongoing)
- Questions? Read APPLICATION_LAUNCH_GUIDE.md
Total Setup Time: ~5 minutes
- Read DEPLOYMENT_PACKAGE.md (understand 3 distribution options)
- Read LAUNCHER_GUIDE.md (understand how launchers work)
- Follow DEPLOYMENT_PACKAGE.md steps to package distribution
- Test on Windows machine
- Test on Linux machine
- Distribute LMS-Setup.zip to your users
- Reference LAUNCHER_GUIDE.md for troubleshooting
- Read ARCHITECTURE.md (understand system design)
- Read GUIDELINES.md (understand coding standards)
- Explore src/ folder (study existing code)
- Read docs/CHANGELOG.md (understand recent changes)
- Make modifications following guidelines
- Test in local installation
- Build new JAR:
./package-setup.sh - Commit with clear messages
# 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!# See DEPLOYMENT_PACKAGE.md for:
# - What files to include
# - 3 distribution options
# - Step-by-step packaging
# - Email template for users# 1. Understand architecture
cat ARCHITECTURE.md
# 2. Understand standards
cat GUIDELINES.md
# 3. Start coding following the guidelinesQ: 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.
Problem? Follow this order:
- Setup/Launch Problems? β
APPLICATION_LAUNCH_GUIDE.md - Windows Issues? β
LAUNCHER_GUIDE.md(Windows section) - Linux/Mac Issues? β
LAUNCHER_GUIDE.md(Linux section) - Installation/Distribution? β
DEPLOYMENT_PACKAGE.md - Architecture Questions? β
ARCHITECTURE.md - Development Questions? β
GUIDELINES.md - Still Stuck? β Check
docs/CHANGELOG.md(what's been fixed)
β
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
- Extract
LMS-Setup.zip - Read
QUICKSTART.txt(2 min) - Run
java -jar LMS-Setup.jar - Launch the application
- Enjoy! π
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! π