Skip to content

A desktop application built with JavaFX and FXML for managing a library's collection, including features for adding, searching for books, and managing borrowers. The user interface is built using FXML, and the application logic is implemented with JavaFX. The application uses the Proxy, Observer, MVC, Composite and Iterator patterns.

Notifications You must be signed in to change notification settings

Alaa-Kanso/Library-Management-System

 
 

Repository files navigation

Library Management System

This project is a library management system that allows users, librarians, and administrators to interact with a collection of books. The system is built using JavaFX and FXML, and it implements several design patterns, including MVC, composite, proxy, iterator, and observer.

Table of Contents

  • Features
  • Installation
  • Usage
  • Credits
  • Features

    The library management system has the following features:

    User

    • Browse all books available
    • Borrow books
    • Filter books by author name, length, and genre
    • Search for books by name
    • Be notified when new books are added to the library
    • See the books they have borrowed
    • Return books

    Librarian

    • Add new books to the library
    • Browse the list of users who have borrowed books they added

    Admin

    • Add new librarians
    • View details of all librarians in the system
    • Remove librarians from the system

    Installation

    Prerequisites

    • Java 8 or higher
    • MySQL installed on your machine
    • Access to a MySQL server instance (either locally or remotely) with a username and password

    Setup

    • Create a new database named guiproject in your MySQL server instance. You can do this by running the following command in the MySQL shell or a MySQL client tool:

      CREATE DATABASE guiproject;

    • Set the username and password of your MySQL user account in the getConnection() method in the Database.java file. This is necessary to establish a connection to the database. Replace the USERNAME_HERE and PASSWORD_HERE placeholders with your actual username and password:

      Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/guiproject", "USERNAME_HERE", "PASSWORD_HERE");

    • Run the application by running the Main class. As soon as you run the application, it will automatically create the necessary tables (users1, books, messages, and borrows) in the guiproject database if they don't already exist.
    • That's it! Once you have completed these steps, you should be able to use the library management system to manage your collection of books.

    Usage

    When you first run the library management system, you will be prompted to log in as a user, librarian, or admin. Depending on the role you choose, you will be able to perform different actions in the system.

    If you log in as a user, you can browse and borrow books, as well as filter and search for books. You will also be notified when new books are added to the library, and you can see the books you have borrowed and return them when you are done.

    If you log in as a librarian, you can add new books to the library, as well as view the list of users who have borrowed books.

    If you log in as an admin, you can add new librarians, view details of all librarians in the system, and remove librarians from the system.

    Credits

    This project was created by:
    • Alaa Kanso - alaakanso120@gmail.com
    • Mustafa Radi - moustafaradi423@gmail.com
    • Mohammad Itani - king.itani.109@gmail.com
    • Hamza Hamadi - hamzahamadi296@gmail.com

    We would like to acknowledge the following resources that helped us develop the library management system:
    • JavaFX documentation
    • FXML documentation
    • Head First Design Patterns book
    • Oracle JDBC documentation
    • Stack Overflow and GitHub for community support
    • ChatGPT for providing guidance when the team encountered difficult problems

About

A desktop application built with JavaFX and FXML for managing a library's collection, including features for adding, searching for books, and managing borrowers. The user interface is built using FXML, and the application logic is implemented with JavaFX. The application uses the Proxy, Observer, MVC, Composite and Iterator patterns.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 97.8%
  • CSS 2.2%