Skip to content

🧪 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

  1. Book Management:

    • Add, edit, delete book information
    • Search books by multiple criteria (title, author, genre)
    • Display detailed book information
    • Display book list
  2. Reader Management:

    • Register new readers
    • Update reader information
    • Search readers by ID or name
    • Display reader's borrowing history
  3. Borrowing Management:

    • Process book borrowing
    • Process book returns
    • Calculate late fees for overdue returns
    • Display list of currently borrowed books
  4. Reports and Statistics:

    • Statistics on most borrowed books
    • Statistics on frequent borrowers
    • Statistics on overdue unreturned books
    • Export reports as text files

Technical Requirements

  1. Software Architecture:

    • Apply 3-tier architecture model
    • Use SOLID principles
    • Design object classes following OOP principles
  2. Database Interaction:

    • Use JDBC to connect to the SQL database designed earlier
    • Handle transactions for critical operations
    • Use PreparedStatement to prevent SQL Injection
  3. 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
  4. Console Interface:

    • Design clear, user-friendly navigation menu
    • Display beautifully formatted information
    • Handle user input with validation
  5. Exception Handling:

    • Handle all potential exceptions
    • Display user-friendly error messages
    • Ensure application stability when errors occur

Implementation Guide

  1. Database Design:

    • Use the database designed in SQL/FINAL.md
    • Create JDBC connection to database
  2. 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
  3. Console Interface Development:

    • Design main menu and submenus
    • Handle input and display results
  4. 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.

Released under the MIT License.