Gunn Matchomatics

Disrupting a (potentially) million-dollar company in two days. My school-wide valentine's matcher is fully customizable and free (for now).

Gunn Matchomatics

Bro, Gunn pays $700 a year for matchomatics. What a freaking scam. I bet I can do better. And I have two days to do it.

(Spoilers: we did it!)

GitHub - ThePickleGawd/matchomatics: Why pay $700?
Why pay $700? Contribute to ThePickleGawd/matchomatics development by creating an account on GitHub.

The Goal

We want to turn this:

Our own form

Into this.

Really $700?

Students fill out a form and get matched with people similar to them, across many different categories. Seems simple enough.

The Setup

I'm using Python since it's good for managing lots of data. Once we have all the responses from the Google Form, we can download it as a .csv file and save that on our computer.

Sample data generate by ChatGPT

In matches.py I basically read all this data and do a nested loop to match each person with every other person. All of these matches (along with identifying data such as name, gender, grade) are flattened into an array and stored in a new .csv file.

To find the match-compatibility score, we can use Dylan Lu's magical love-matching algorithm. We give "points" for questions that are answered the same or very closely, and we give extra points for matching "dependent" questions (for example, I answered that I prefer girls with brown hair, and a girl answered they have brown hair).

Dylan Lu's Magical Love-Matching Algorithm

Now that we've matched everyone, we'll need to convert the outputted .csv file into something printable and pretty. I made an HTML template with Jinja2, and I use a Python script (csv_to_html.py) to pass all my data into that template to generate hundreds of pages.

The template.html file is basically a giant wrapper that includes the basic boilerplate HTML needed and brings in Tailwind. We take all our data and pass it to a new person.html, which presents it in a pretty page format.

template.html
person.html with data

Now we can generate hundreds of these and print them out!

It's printable!

Conclusion

I'm not asking for $700, but I do want some credit for putting in all this work today and yesterday (see bottom of the previous two pictures!). Tomorrow, we'll need to figure out how to print out all 700+ copies of these...

As always, I'll update this article and let you know what happens in the end.