Skip to content

corbanha/CSFValentineProgram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CSFValentineProgram

This is a program for the CSF club at school to use for creating a automatic matching system for their Valentine's Day Fundraiser.

This program is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0) license. You may copy/distribute/edit all of this material (with the exception of the heart icon (images/icon.png)) even for commercial use as long as you give appropriate credit.

My name is Corban Anderson, and I am the creator of Wilcox's CSFValentine Assigning/Sorting Valentine's Day program. In this file I will detail a brief overview of the project and how to use the program.

Overview of the project

This is a GUI (Graphical User Interface) version of a terminal version that I created a couple months ago. This program was written as a student sorter and assigner for the Wilcox High School CSF Club fundraiser. All it does is it takes in data from an external spreadsheet (supported file types are .xlsx, .csv, and .tsv) containing the results from a survey given to a population, and spits out a list for each student of their top 15 or so students that most closely match their choices

While writing this program I took great care to make it as customizable as possible so that the CSF club can make addition changes to the results without having to have another go into the code. For example, in addition to a number of different score types and supported questions, users (I will refer to "users" as the operators running the program, and "students" as the general population that simply fills out a survey) can also customize how many students are displayed on a sheet, the font sizes of all the text, how to display student names, and other categories on the results form, and can even customize the final image to their liking.

Though I originally had a terminal version of the program, I through nearly everything out of the terminal version when making the GUI version. This program was thrown together in about a week and a half, so I do expect there to be errors (in fact I am positive there are errors). I thank anyone who else who comes along and spends their time to help the project!

How to use the program

Question import and set up

The program should start up in the "Welcome!" screen, it should be pretty self explanatory. Just one note, very early .csfv versions that were generated by my terminal version are not supported by the GUI version. Because no one has the original .csfv files, this doesn't matter too much. Another item to note is that the current .csfv files are saved in plain text, though this is purposeful (allows the user to get in there and edit the file manually if need be), some users might be fearful of security concerns.

Next is the question import stage of the process. For each question, you will see a set of options that you can customize. The first two checkboxes, whether to import and whether it is used in sorting, should generally be never touched. It is best practice to import all of the questions, this makes it easier if you plan on importing more students later. When you select the question type, depending on what you have selected the question will/will not be used for sorting automatically. For example, short answer questions are not used in sorting, and thus messing with the "Used in Sorting" checkbox is meaningless. Only mess with the "Used in sorting" checkbox if the question is a question that can be sorted, but you don't want to sort it.

The score type drop down determines how to interpret the percentage from the check of two students' answers. Percentage leaves it how it is, inverted percentage inverts it, and so on. For a detailed look at all of the gates, have a peek at the csf_val/ScoreType.java file.

The short value textbox is if you would like to have this question show up in the similarities row on the student results sheet. Ideally this should be a short value which describes the question thoroughly/or the attribute the question was testing. Two questions can have the same short value, but that short value will only show up once on the results sheet even if the student did well in both questions.

Just a quick tip for the multiple choice, if you have a lot of options that you need to add, go view the Google Form from how the students would have seen it, then copy and paste the options directly into the text area.

The third checkbox is whether or not this question is determinative. Aka, after applying the score type on the percentage, if the percentage is not 100%, the student being compared will not show up on the student's list of students. For example. John is a boy and would prefer to have girls show up on his results sheet. The questions "What is your sex?" and "What sex would you like to be matched with?" would both be marked as determinative because in the assigning process, when John is being compared to Carl, Carl should not show up on John's list at all, even if Carl scored high for John in all of the other questions.

A word on how multiple choice (and checkbox and dropdown) questions are compared. Say on a question John selected options 1 and 2, Carl selected options 1, 2, 3, 4, and 5. For John, Carl would have a score of 100% because Carl had all of the options that John had. For Carl on the other hand, John would return a score of 40% because John only had 2/5 of Carl's choices. We would apply a Boolean OR score type if the question was determinative and we thought that these results were both acceptable.

Couple Questions

Once you are done with this screen and click next, you will be asked if you would like to add any couple questions. The idea behind coupled questions is that in the assigning stage the answer of John on question 2 (if it is coupled to question 3) would be compared to Carl's answer on question 3, and vis versa, John's answer to question 3, would be compared to Carl's answer on question 2. This functionality is useful for pairs of questions like "What is your grade?" and "What grades do you want to be matched with?" Where John's "Senior" should be instead compared to Carl's "Junior, Senior."

Navigating the Primary Screen

Once all of this is done. You will find yourself on the Main Screen. Right in front of you will be a table of all of the info that was imported. This table can be edited, but with caution because it is easy to mess up, and there is currently no undo function built in.

At the top are three tabs, the Student Data tab which you are in, a Questions tab where you can edit the questions and can go edit the coupled questions, and a Print Shop tab.

There are also menu options along the top which is where you can do basic tasks like saving (though the project almost always autosaves after most actions), save as, opening, etc. but also here you can import print settings and more students.

The Print Shop

The print shop page is where you can fully customize your results look. Here you can set the main/minor font sizes, the number of students per sheet, the minimum image height, a custom message for students when they get their results sheet, the number of similarity rows to show, the amount of space to have between the prints, a custom image, the ink darkness of the image, the name format, and the result item formats and locations.

Most of these are self explanatory, if you aren't sure what numbers you can put in, hover over the textbox for the tooltip which gives the bounds of acceptable values. For the name format and result formats, any text will be displayed as text, numbers will be displayed as the student's answers to that question number, and a % will be replaced by the percent final score of that student.

From there you can choose which students you want to print out, and then hit the print button. This will go through the process of assigning the students, then a print dialog will pop up (sometimes it takes a moment), and if there were any errors during the assignment, an error dialog will come up telling which students had trouble during the assignment. Usually errors will occur for one of two reasons. Either an option wasn't typed correctly/missing on the question set up screen, or a student had bad input on their end. Fix these errors then press print again for better results.

I highly recommend downloading a print to pdf program from online, if your machine doesn't already do it by default.

Closing Remarks

Thank you for taking the time to read this. I know that it is quite long, but I hope it was worth it. Please feel free to download the files and run the program yourself!

-Corban

About

A program for the CSF club at school to use for creating a match system for their Valentine's Day Fundraiser.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages