This repository contains a Java RMI application designed to predict Baccalauréat (BAC) scores. It utilizes a client-server architecture to facilitate seamless communication and computation for BAC score predictions.
The project is divided into two main components:
-
client
: The client module is responsible for the user interface and interaction. It sends data to the server for processing and displays prediction results. -
server
: The server module handles the core computation and prediction logic. It receives data from the client, processes it, and sends back the prediction results.
- Java JDK 17 or higher
- Apache Maven (for dependency management and building the project)
- Clone the repository to your local machine.
- Navigate to the project's root directory.
- Build the project using Maven:
-
Clone the repository to your local machine.
-
Install MySQL and ensure it's running on your system.
-
Create a new MySQL database for the application.
-
Navigate to the
server
directory and open theDatabaseUtil
class. -
Configure your database connection details (username, password, database URL) in the
DatabaseUtil
class. -
Execute the following SQL command to create the
StudentRecords
table within your MySQL database:CREATE TABLE StudentRecords ( id INT AUTO_INCREMENT PRIMARY KEY, grade1 FLOAT, grade2 FLOAT, grade3 FLOAT, bacGrade FLOAT, schoolName varchar(255), createdAt datetime DEFAULT CURRENT_TIMESTAMP );
To run the server component:
- Navigate to the
server
directory. - Execute the server application:
To run the client component:
- Navigate to the
client
directory. - Execute the client application:
- Data Upload: Users can upload student records for analysis.
- Score Prediction: The application predicts BAC scores based on the provided data.
- Model Training: New prediction models can be trained with updated data sets.
The application follows a Remote Method Invocation (RMI) pattern, allowing the client and server to communicate remotely with the following interfaces:
DataUploadService
PredictionService
TrainingService