After several years of mooching off the open source software community, I finally gave something back: an event management and RSVP tracking plugin for WordPress called RSVPMaker. You can see some sample events and respond to the RSVPs at www.rsvpmaker.com, a demonstration and documentation website I set up to support this project.
I put out the first release in November, and as of this writing RSVPMaker has been downloaded more than 800 times.
As a writer and editor whose programming skills are largely self-taught, I was somewhat hesitant to put my code out there for all to critique. But RSVPMaker has been pretty well received, particularly by people who say it’s more flexible than some other event plugins to WordPress that they have tried.
The RSVPMaker plugin is new, but it’s based on PHP code I developed and refined over a period of years for event management on websites I managed for political campaigns, community organizations, and business networking groups.
Because I found I had to adapt the event and RSVP functions to work slightly differently in several different contexts, I designed RSVPMaker to support several different event management scenarios. For example, sometimes you want to request RSVPs, and other times you just want to publicize your event. Sometimes you want to collect money online, and sometimes you don’t. If you’re signing up volunteers, maybe you want people to check off specific timeslots when they can be available. I thought of putting in a deadline for accepting RSVPs, and then someone else said he also needed to be able to specify a start date before which RSVPs would not be accepted.
I tried to provide as much flexibility as possible, and then also give the more advanced users a way of writing their own plugins to change the behavior of my plugin. Certain functions, such as the one for displaying the RSVP form, can be modified to add or change the fields on the RSVP form.
A few things about the process surprised me:
- So far, nobody has actually critiqued the programming code. That’s both good and bad: I wouldn’t mind some constructive suggestions about how to tighten it up or make it more efficient. Mostly, people download it, try it, and give me feedback on additional or different functionality they would like to see. So far, nobody has pointed out programming flaws or sent me corrections or upgrades as PHP code.
- I thought translation to other languages was something I wouldn’t have to think about until I got to a much more advanced phase of development. But the first person who contacted me with feedback was from Denmark, and I’ve heard from people in France and other countries as well who mentioned the need to translate portions of the user interface. I’ve gotten as far as putting in the placeholders for translated or localized phrases, but still need to find partners who speak these other languages to do the actual translation. It remains to be seen whether there will be enough interest that these volunteers will come forward.
- I ran into problems with some functions working fine on my server and apparently those of some other website operators, but not for a few people who found the links to the event pages didn’t work. Trying to debug what was different about the systems of the people who were having problems, vs. those who weren’t, turned out to be quite a challenge. In the case of the missing links, I had to implement some of my code the “wrong” way, according to the documentation, but the only way it would work for one of these people. Then, since her problem seemed to be the exception to the rule, I made it a special tweak that only gets executed if you turn it on.
Overall, it’s been a rewarding and interesting process — and I’m just getting warmed up. I started out with release 0.6, figuring the code was a little more than half-baked. I’ve worked my way up to version 0.9 and will probably declare it to have achieved version 1.0 within the month.