Santulator icon indicating copy to clipboard operation
Santulator copied to clipboard

🎁 A Secret Santa draw generator that creates beautiful PDFs for each participant

🎁 Santulator

Build Status Code Coverage SonarCloud Latest Release Twitter Follow

Santulator helps you run your Secret Santa draw simply and flexibly. You can enter the names of the people participating in the draw and the system will randomly choose who will give presents to whom. If you want to avoid certainly parings, for example to ensure that people don't get their own partners in the draw, you can add exclusions. When the draw is run, a PDF will be generated for each person telling them who to buy a present for. If you want to avoid accidentally seeing all of the results, you can add a secret password to the generated PDF files. Santulator draw selection Santulator in action

How To Use Santulator

Santulator is available for free from the download page of the project website. You can find a complete tutorial explaining how to use the system on the help page.

Running The Development Version of Santulator

You will need JDK 17. The version used for building Santulator releases is OpenJDK 17 with Hotspot, from Adoptium.

With your JDK installed you can then clone this repository and run the following to start Santulator:

$ ./gradlew :gui:run

How To Build Santulator

You can build the entire system with the following command:

$ ./gradlew clean build

How To Run The GUI Test

By default the GUI test runs as part of the standard Gradle build, in headless mode. If you'd like to run the GUI test in a non-headless mode so that you can see what is happening, use the following command:

$ ./gradlew :gui:test --tests io.github.santulator.gui.main.GuiTest --rerun-tasks -PnoHeadless

How to Build The Installable Bundle

Installable Java Apps with jpackage

In the article Installable Java Apps with jpackage you can read about how installable bundles for Mac, Windows and Linux are created and how you can do this in your own project. These self-contained installers allow users to setup Santulator on their computer without the need to first install Java.

You can also find full, step-by-step instructions for creating the Santulator installable bundle in PACKAGING.md.

Open Source & Secret Santa with Santulator

Open Source & Secret Santa with Santulator

Over on the King Tech Blog you can read more about the project in Open Source & Secret Santa with Santulator. The article includes information about how JavaFX CSS is used to give Santulator a festive colour scheme.

Before and after colours