This Java application simulates a library management system coded from scratch, featuring user authentication, book management, and administrative functionalities. The project utilizes JavaFX and CSS for the graphical user interface, ensuring a seamless and intuitive user experience. The security of user credentials is implemented with hashing, using both salt and pepper techniques.
-
User Authentication and Registration:
- Secure login and registration with hashed passwords, salt, and pepper.
- User account information stored securely.
-
Book Management:
- View the books available in your library.
- Borrow and return books.
- Request to change the location of a book (e.g., from another library).
- Reserve a book if it is currently borrowed by another user.
-
User Account Management:
- View and modify account information.
- Receive notifications for overdue books or status updates.
-
Administrator Privileges:
- Perform all user functionalities.
- Move books between locations.
- Add new books to the database.
- Force return of a book by a user.
- Change user categories, affecting borrowing limits and durations.
- Receive specific notifications, such as relocation requests.
-
Notification System:
- Users receive notifications for overdue books or status changes.
- Administrators receive relocation requests and can accept or reject them.
- Java SDK 17
- JavaFX
- IntelliJ IDEA
- CSS
- MySQL
- Clone the repository to your local machine.
- Open the project in IntelliJ IDEA.
- Set up the project SDK to Java 17.
- Build and run the application.
Before launching the application, follow these steps to configure the MySQL database:
-
Create a MySQL database and tables by executing the SQL scripts provided in the
src/main/resources/com/example/tp_bibliotheque/bdddirectory. These scripts contain the necessary schema for the application. -
Open the
BDDConnector.javafile located in/src/main/java/com/example/tp_bibliotheque. This file manages the database connection. -
Modify the connection parameters in the
BDDConnector.javafile to match your MySQL database configuration:// BDDConnector.java con = DriverManager.getConnection("jdbc:mysql://your-mysql-server:3306/your-database", "your-username", "your-password");
- Project developed by Guillaume DI FATTA




