A JavaFX-based desktop application for document classification. This application provides a client interface for uploading and classifying documents using machine learning classifiers.
- User Authentication: Secure login system with password hashing using BCrypt
- User Management: Support for multiple user types (Admin and Client)
- Document Analysis: Upload and analyze documents (PDF files) using machine learning classifiers
- Admin Panel: Administrative interface for user management
- Settings: Customizable application settings
- SQLite Database: Local database for storing user data and application state
- Java Development Kit (JDK) 8 or higher with JavaFX support
- SQLite JDBC driver
- Apache PDFBox library
- BCrypt library for password hashing
- JSON library
The application uses the following libraries:
- sqlite-jdbc-3.23.1: SQLite database connectivity
- jbcrypt-0.3m: Password hashing
- Apache PDFBox 2.0.15: PDF file processing
- fontbox-2.0.15.jar
- pdfbox-2.0.15.jar
- pdfbox-tools-2.0.15.jar
- preflight-2.0.15.jar
- xmpbox-2.0.15.jar
- json-20180813: JSON processing
- commons-io-2.6: Apache Commons IO utilities
- JUnit 4.12 & JUnit 5: Testing framework
-
Clone the repository:
git clone https://github.com/AyeshW/Classifer-Client.git
-
Open the project in your IDE (IntelliJ IDEA recommended)
-
Ensure all dependencies are properly configured in your project
-
Build the project
-
Run the
Main.javaclass located in theclassiferpackage -
The application will start with the login screen
-
Log in with your credentials:
- Admin users can access the admin panel
- Regular users can access the client interface
-
For Clients:
- Upload documents using the file chooser
- Select a classifier type (Generic or Confidential)
- Analyze the documents
- View classification results
-
For Admins:
- Manage user accounts
- View user data
- Configure application settings
Classifer-Client/
├── src/
│ ├── admin/ # Admin panel interface and user management
│ ├── analyzer/ # Document analysis logic
│ ├── classifer/ # Main application entry point
│ ├── client/ # Client interface for document upload and analysis
│ ├── dbUtil/ # Database connection utilities
│ ├── fileHandler/ # File reading and opening functionality
│ ├── logginApp/ # Login interface and authentication
│ ├── setting/ # Application settings
│ ├── signUp/ # User registration
│ └── Tests/ # Unit tests
├── Classifer.sqlite # SQLite database file
└── ClassiferFx.iml # IntelliJ IDEA module file
- JavaFX: UI framework for building the desktop application
- SQLite: Lightweight database for local data storage
- Apache PDFBox: PDF processing and text extraction
- BCrypt: Secure password hashing
- JSON: Data exchange format for communication with classifiers
- JUnit: Unit testing framework
To run the tests:
# Run unit tests using your IDE's test runner
# Test classes are located in src/Tests/This project is part of an academic or personal project. Please check with the repository owner for licensing information.
- AyeshW (Repository Owner)
- The application connects to a classifier service via HTTP to perform document classification
- PDF files are processed and their text content is extracted for analysis
- User passwords are securely hashed using BCrypt before storage