Course Companion System Requirements Any system with Sun Microsystem’s 1.4 or higher JVM should be able to run the client without any trouble. The system also needs an open connection to the internet. System Overview The Course Companion is part of a larger system used to upload and grade student assignments. The Student Assignment Client was written to provide three main functions: 1. Register students 2. Allow students to upload their assignments 3. Let the students check their grades The application was written as the student side to the Instructor’s Grading Client, which is used to view, run, and grade assignments. The Course Companion was designed to be a single, executable Java JAR file. This allows the application to be downloaded and executed without any installation on a system with Sun’s JVM installed correctly. Installation As previously stated, the Course Companion was designed to be run without installation. This was a main goal so the client could be downloaded and ran from any location with a connection to the Internet. The only installation-like action performed by the application is the extraction of Sun’s mail.jar and activation.jar files to the machines on which they don’t already exist. This happens the first time the application is run on a machine. The two files are extracted from the applications JAR file, and are placed in the application’s working directory. The first time the client is run on a system, the user will be notified that the client has been updated. This message just lets the user know that the two jar files (mail.jar and activation.jar) have been extracted and placed into the working directory. This also means that if the user would like to use the “Forgot My Password” function, they will have to close the application and restart it. If this function is not needed at this point, there is no need to restart the application. Running the Application The Course Companion has the ability to, among other things, register students, handle the upload of assignments, and allow the student to check their assignment grades. The application is bundled as an executable JAR file. This means that by double-clicking the JAR file, the application should start in most operating systems. Registering The first time a student runs the application, they will need to register in order to log on. When the application starts, there will be found a button near the bottom of the screen labeled, “Register”. When the student clicks on this button, a registration screen will appear. This screen collects the following information: First Name: The student’s first name. Last Name: The student’s last name. Email Address: The student’s email address. Password: The password for the student’s account. Courses: A list of available courses to register for. When the student clicks on the “Submit” button, the application runs some error checking on the input information, giving the student feedback on any errors in their information entered. Upon successful registration, the student will be assigned a user name in the format of [first letter in first name][last name]. An example would be Bob Smith receiving a user name of ‘BSmith’. If the application finds that another user, or more likely this user, has registered with this name, it will deliver a message to the user stating that the user has already registered. This could happen for example, if the user ‘Bob Smith’ tried to register in the system after ‘Barb Smith’ did. Since both users would be given the user name of, ‘BSmith’, Bob’s registration would fail. The action to be taken in the situation of two students with the same name is to have the student manually append the ‘_1’ to their last name. So, if Bob wanted to register in the system he should enter ‘Bob’ into the ‘First Name’ field, and ‘Smith_1’ in the ‘Last Name’ filed. After a successful registration, the application will notify the student that the attempt was successful registration and of the user’s user name. With this information, the student will be able to log in and use the application without restarting it. Assignment Upload At the heart of the application is its ability to allow students to upload their assignments for grading. After the student registers, and log in, they will have the ability to upload files against any of the available assignments for any class they have registered for. Along the top of the user interface, two drop-down boxes can be found. The first drop-down box is for the class. This drop-down box will be filled with all the classes the student has registered for. On the selection of any class from this drop-down box, the second box, the assignment box, will be populated with the assignments from that class. Once the class and assignment is selected, the user can add assignments to the list of files to upload. To do this, the student should begin with the ‘main’ file. The main file is defined as the HTML file that holds the main java class file for an applet, the java class file that defines the application’s main() method, and the .exe file for any C# application. Main files would be defined as the following: Java Applet: The HTML file that contains the main applet class or JAR file. Java Application: The class file that defines the main() function. C# Application: The .exe file for the application. By clicking on the ‘Add’ button next to the ‘Main File’ list box, the student is presented with an interface which will allow them to navigate through the file system of their PC, and choose the main file. The view is automatically filtered using a list of file extensions listed in a text file on the server. If the user tries to add a second ‘main’ file, the second file will replace the first. Now the user can choose any other file that is needed to run their project and all source files for it. Secondary files would be defined as the following: Java Applet: The class or JAR file used in the HTML page, any other class or JAR files needed to run the applet, all media files used in the applet, and all of the source files for the applet. Java Application: Any other classes or JAR files need to run the application, all media files used in the application, and all source files for the application. C# Application: All media files needed for the application, and all the source files for the application. The process is the same as for the ‘main’ file selection with the important difference of being able to select multiple files. To add to the existing list, the student can click on the ‘Add’ button again and select more files, these file will be appended to the existing list of files. Any files added to the list can be removed selectively by choosing one or multiple files, and clicking on the ‘Remove’ button to the left of the list box. The files can also be removed in mass by clicking on the ‘Clear’ button on the left. After the files for the assignment are added to the lists, the user can upload the assignment by clicking on the ‘submit’ button at the bottom of the application. When the button is clicked, a small popup window will appear that will show the student the progress of the upload. When the upload is complete, the student will be notified, and the assignment will be available for grading. Any future uploads for the assignment will update the date submitted field in the database. Also, if a file is re-uploaded, the file most recently uploaded will replace the existing file in the database, and so will be the file available for grading. Checking Uploaded Files The student may also see what file they have uploaded by selecting Students -> Check Uploaded Files from the menu. This brings up a window that displays the files which the student has uploaded in a tree structure. From this window, the student can view all of the files that they have uploaded to the system for grading by navigating the tree. The first entry for each uploaded assignment, is that assignment’s time stamp. This date will reflect the date of the most recently uploaded file for this assignment. At the bottom of the window, two drop-down boxes can be found. The first holds a list of all the assignments the student has uploaded to the system. By choosing an uploaded assignment from this drop-down, the student can view and run the uploaded assignment just as the instructor would. By clicking on the “Run Program” button, the student’s assignment is downloaded from the server, and executed locally on their PC. Students should take advantage of this option since it is the student’s responsibility to ensure that their assignments run, not the instructor’s. The second drop down behaves like the first, but the assignments listed there are assignments that the instructor has added to the “Best Assignments” list. Checking Grades Students are able to check their grades at any time through the application. To check their grades, the student would select the menu option Student -> Get Your Grades. After selecting this, the student will be displayed their grades for any graded assignment for all the classes they are registered for. The student will be able to view a table displaying the assignment names, due date, date submitted, comments, possible points, earned points, total possible points for each class, and total earned points for each class. If an assignment has been uploaded, the date of the last file uploaded will be recorded in the ‘Date Submitted’ column. If no files have been uploaded for an assignment, the phrase ‘Not Submitted’ will appear. If the assignment has been graded, the points given for the assignment will appear in the ‘Earned Points’ column; if it hasn’t been graded, the phrase ‘NG’ will be displayed. Getting Help The students can get general help by selecting the Help -> Contents from the menubar. After making the selection, a window will appear showing the help topics for the application. Students are encouraged to offer suggestions for additions to, and modifications of information found here. FAQs Below are listed some frequently asked questions regarding the Course Companion. Why when I start the client for the first time, do I get a message about my client being updated? This is normal. The first time the program is executed, it extracts two JAR files used to support email. After the first time, this message should not show up again. What is my user name and password? The first time a student uses the client, they must register in the system. It’s at this point that the student receives a username and password. See above for directions. Why doesn’t my password work? While the user name is not case-sensitive, the password is case-sensitive. OK, I forgot my password, now what? At the log in screen, you’ll find a button labeled “Forgot my password”. Click on this button, enter in the email address you used to register in the system with, and you will receive an email with your log in information. I tried to email myself my log in information, and I got an error message! Since there could be many reasons for this, you best bet is to read the message and try to solve the problem it’s complaining of. Usually, the problem lies in a firewall configuration in the system. Why am I missing a class in my Class drop-down box? Check to be sure you registered for it. Click on Student -> Update Student Information and make sure the class you are missing is highlighted. When I add a file to the ‘Main File’ box, the one I had there disappears! This is supposed to happen; an assignment can only have one main file. I uploaded an assignment, and I see the files listed for it in the client. But, when I click on the ‘Run Program’ button, nothing happens or the application doesn’t run like it is supposed to! Make sure you have uploaded ALL the files needed for the project. Also, if you are using any media files, you need to have these files in the application’s root directory. This means that you should not place media files in a “Media” folder. If you do, they will not be found. I uploaded an assignment, and I found that there was a problem with it. How do I replace the file that I need to change? If you upload a file for an assignment, and there is already a file with the same name, the system will replace the older file with the new one. How does the assignment’s uploaded date get created? An assignment’s uploaded date is updated each time a file is uploaded to the system. So, if you make a change to a file, and upload the changed file, the assignment’s uploaded date will change to reflect the date the last file was uploaded. What language is the system written in? The system was written using Java. It hooks into a MySQL database using JDBC.