------------------------------------------------------
-  Important things to know before using the program -
------------------------------------------------------

----Setup----
Provided you are working with the project owner, Sam Gandfried, users must use some type of terminal to connect to the server ex. Putty
If you are not working on the server,  you will take the 5 files, listed below in "Files and Variables" and place them all in the same folder.
Once in, the HostName is grady.ddns.net
The user will then set up a password.
Once in, make sure to type the command 'Grady/' which will take you to the 
Grady folder (where the files are)
Users can then use the text editor of their choice like nano, vim, etc..and begin working.

----Description---
The purpose of this program is to optimize the trade off between the advantages and disadvantages
of both the absolute scale and the grading curve. This is done by a series of complex algorithms 
in the Algorithm5Thread.java

----Files and Variables---------------
Algorithm files are located in public_html/pages/java_code/grady
Other files for this program include: Algorithm5.java, Algorithm5.class, Algorithm5Thread.class
Algorithm5.java contains the variables needed for this program to execute succesfully like:
numOfStudent - which stores the number of students.
numOfGrades - which stores the number of grades.
x[] - which contains the grades of the students
upperBounds[] - which contains the upper bounds of the grade ranges 
LowerBounds[] - which contains the lower bounds of the grade ranges
a[] - contains a set of percentages which should add up to 100%

----Hyperparameters-----
The program uses a series of hyperparameter which are the back bone of the program, some are:
Q, B, numOfProc, numOfIterations, and others. Alterating this variable could affect the final result drastically.

----Compiling process----
to compile enter - javac -cp commons-math3-3.6.1.jar
to run the program enter - java -cp .Lcommons-math3-3.6.1.jar Algorithm5

----Web App Setup----
Once you obtain the grady file from the server or the documentation files provided, copy the file over to MAMP/XAMPP's "htdocs."
Start the Apache server and enter the following URL into your desired web browser:
XAMPP: localhost/grady/pages/login.php
MAMP: localhost:8888/grady/pages/login.php
Use your preferred text editor or IDE (we used VSCode) to open the grady folder under htdocs.

Note: Look into the installation and maintenance document for more detailed information.

----Files and Variables----
The main website files are located in public_html/grady/pages
The main files are: upload.php, forms.php, test.php, login.php/signin.php

upload.php - handles CSV file upload that contains the students' grades

forms.php - the page in which the user logs into and obtains all the inputs including: 
gradescount: Number of grades
studentcount: Number of students 
gradelabel[]: Grades to be utilized
gradeupperrange[]/gradelowerrange[]: Upper and lower bound of each grade
priors[]: Probability of obtaining each grade
fileToUpload: CSV file containing each grade

test.php - obtains inputs from forms.php, utilizes the Java algorithm to output the student grades, outputs results page

login.php/signin.php - handles the user login into the Grady web app

----Testing Process----
Once you have modified the desired file on your editor,
save the changes and refresh your browser with the web app open to see and test any changes made.