The typical Secret Santa experience usually involves picking a name out of hat to determine which member of your group you'll be buying a gift for. I've never much liked the hat-picking approach myself, being a technically inclined person. Apparently, neither did the author of the aptly named SecretSanta program, a GPL-licensed application that is freely available to help all of Santa's helpers this year. I installed version 1.2, which was just released on December 1.
What SecretSanta does in a nutshell is assign members of a group to each other for a gift exchange. The program allows the administrator of the group to add and delete members and to automatically shuffle the users to change who gets whom. Users simply log in to the online application and find out whom they'll be giving a gift to. To make it even more usable the program allows you to input member relationships, so if you want, you can make sure that spouses don't end up choosing each other (in the interest of fairness, right? as you're probably going to buy a gift for your spouse on your own). Essentially, from a technical point of view, the relationships represent invalid picks.
This Santa doesn't rely on reindeer to serve its load but rather on a typical setup of Linux, Apache 1.3.x or 2.x, PHP 4.1.x+, and MySQL 3.23+. Installing SecretSanta is easy enough. Simply download and uncompress the archive and then place the file on your Web server (wherever you want it to be served from -- e.g. www.yourdomain.com/secretsanta). From there, navigate to www.yourdomain.com/secretsanta/install.php and input the required fields for your MySQL database user access. A word of caution though -- the script as currently constituted requires you to have root access to your MySQL server, so if you're on a shared host you may be out of luck.
The program lacks a password reminder feature, so if a user forgets his login information, an admin has to reset it (which is easy enough to do as the program has a password reset function in the admin interface). Another quirky feature of the program is that it allows any user to sign up and set up a new group for Secret Santa exchange, and the first user in a group by default becomes the group's administrator. Personally I would have preferred the installation process set up the main administrator to prevent any confusion and for manageability.
The program includes basic documentation for installation and usage, and there's a support forum Web site.
All in all, SecretSanta is a simple program that adequately handles the task of running a gift exchange.
PHP Gift Registry
Though Santa knows who's naughty and who's nice, he doesn't know what gifts you want -- unless you tell him. Now Santa can turn to PHP Gift Registry, a GPL-licensed application that helps with the task of maintaining a (surprise, surprise) gift registry.
|Click to enlarge|
PHP Gift Registry allows users to keep a wish list of items. You can grant other users permission to view your list so that they can buy the items you want, and vice versa. If you use Gift Registry to its full potential and have all those that might buy you a gift in it, it'll also help to ensure that you don't get the same gift twice by "locking" an item so that it won't be bought by someone else. On the flip side, it allows you to reserve items on others' lists so they know what you're buying them.
The registry also allows you to rank the items on your list, as well as include a URL where each can be purchased. There is also a messaging system built into the application that lets you know about changes and any user announcements. Though this time of year the occasion is obvious, PHP Gift Registry includes an "upcoming events" feature that makes the application usable for virtually any gift-giving event.
If a surprise gift is what you're looking for, however, this may not be the right application for you.
You download PHP Gift Registry as a GZIP compressed tar file (no compilation required). I installed version 1.3.5, which was released on November 24. The application lacks a simple install script. You need to download and decompress the archive and put it in a directory on your Web server, and you need to make sure you have PHP 4.1.x+, MySQL 3.2.3+, and Apache 1.3.x or 2.x already installed.
You need to manually create a MySQL database for PHP Gift Registry, either from the command line, as described in the INSTALL document, or using whatever tool you use to manage your MySQL database -- for example, phpMyAdmin or Webmin). After that there's a SQL file you need to execute to set up the tables in the newly created database. As a final step in the installation, you need to edit the db.php file to reflect the details of your MySQL setup. None of these are major tasks, but I've gotten used to having an installer script that handles most of this kind of administrative work.
PHP Gift Registry doesn't allow for a macro listing of what you need to buy by store or product for all of the people that you're shopping for. You can only get a list by user, not for the whole, a feature that might make the application a bit more functional.
That said, the application is intuitive and simple. PHP Gift Registry is a quantum leap beyond having a paper list, and you can't beat the price.
This is the time of year that many will of us open our wallets to buy gifts for friends, family, and co-workers. Whether you use SecretSanta or PHP Gift Registry (or both), you'll embody the spirit of openness when you let open source aid your gift-giving experience.