Dance Mixer

This is project was for partner dances such as a high school dance, a ballroom dance, Contra dancing, Irish dancing, et cetera. The idea was to collect the names of people when they enter the dance. Then, each person will receive a dance card with a list of partners to dance with. Previously this type of a dance mixer was done by hand and the dance partner names were written on index cards. Additionally, the participants are given name tags, so that they can find those partners who are listed on their dance card. Over the years, this project has been recreated in many forms



Year Lang. UI Output
2000 Java console Displayed cards in a console
2004 Java GUI Displayed cards in a GUI form output
2005 Java GUI Printed the dance cards to a printer
2007 C# GUI Displayed cards in a GUI form output
2010 Java GUI Printed the dance cards to a printer output
2017 HTML CSS Python XML XSLT LaTeX website PDF with 2 sided dance cards
2022 HTML CSS C++ C website PDF with 1 sided dance cards with graphical logo

This project was created to replace a manual process. It was not intended to compete with any other product, therefore the execution speed was not as important as the programming time. Therefore, specific languages were chosen to allow for development speed and flexibility. However, near the final version of the product, flexibility was not needed and a better algorithm had been determined for generating the cards. Therefore, the project was ported to C to ease deployment, which removed the need to install an XSLT processor, LaTeX, or python. An interesting part of this port was the comparison in performance, as shown below.

Load / Performance Tests

2017 Program 2022 Program
15 men/15 women

Generation time (seconds) 11 1
PDF Page Count 20 10
PDF Size 1.1 MB 40 kB

50 men/50 women

Generation time (seconds) 41 1
PDF Page Count 66 33
PDF Size 3.4 MB 64 kB

200 men/200 women

Generation time (seconds) 182 1
PDF Page Count 262 131
PDF Size 13.6 MB 169 kB