🧪 FINAL PROJECT (JAVA)
Project: Library Management Application
Design and implement a complete Java console application for a library management system, integrating with the SQL database designed in the SQL section:
Application Requirements
- Console-based application
- Database connection through JDBC
- Apply OOP principles learned in Part 3
- Use Collections Framework for data management
- Exception handling to ensure program stability
Features to Implement
Book Management:
- Add, edit, delete book information
- Search books by multiple criteria (title, author, genre)
- Display detailed book information
- Display book list
Reader Management:
- Register new readers
- Update reader information
- Search readers by ID or name
- Display reader's borrowing history
Borrowing Management:
- Process book borrowing
- Process book returns
- Calculate late fees for overdue returns
- Display list of currently borrowed books
Reports and Statistics:
- Statistics on most borrowed books
- Statistics on frequent borrowers
- Statistics on overdue unreturned books
- Export reports as text files
Technical Requirements
Software Architecture:
- Apply 3-tier architecture model
- Use SOLID principles
- Design object classes following OOP principles
Database Interaction:
- Use JDBC to connect to the SQL database designed earlier
- Handle transactions for critical operations
- Use PreparedStatement to prevent SQL Injection
Data Processing:
- Use Collections Framework (List, Set, Map) to manage in-memory data
- Handle streams with I/O Streams for file read/write
- Use multithreading to handle independent tasks like data backup
Console Interface:
- Design clear, user-friendly navigation menu
- Display beautifully formatted information
- Handle user input with validation
Exception Handling:
- Handle all potential exceptions
- Display user-friendly error messages
- Ensure application stability when errors occur
Implementation Guide
Database Design:
- Use the database designed in SQL/FINAL.md
- Create JDBC connection to database
Object Class Design:
- Build Entity classes: Book, User, Transaction
- Build DAO (Data Access Object) classes for database operations
- Build Service classes for business logic processing
Console Interface Development:
- Design main menu and submenus
- Handle input and display results
Testing:
- Test main features
- Handle exception cases
This project will be combined with the SQL project to create a complete application, where the Java part creates business logic and command-line interface, while the SQL part handles data storage and processing.
