Business Problem: Our client was running a fundraiser for a political candidate. In order to encourage attendees to supply their email addresses for a mailing list, the organizers offered to take each attendee's picture with the candidate and email it to them. The client would be working with a laptop, a camera, and no Internet access. They needed to be able to capture the name, email address, zip code and photo of each attendee. Since attendance was expected to be quite large, writing everything on a sheet of paper or keeping a list in a spreadsheet wasn't a viable option. They also needed to integrate with Outlook in order to send the messages in a batch, after the event was over and the laptop could be connected to the Internet again.
Solution: We created a stand-alone application that captured the required information, including the name of the photo. The camera was connected to the laptop while photos were taken, so the photos were stored on the laptop's hard drive. Since photos from digital cameras are usually numbered sequentially, the program even went so far as to guess the name of the photo so that the user didn't have to type it in. Each record was saved for later use and could be edited by the person manning the laptop.
After the event, the user could create a form letter to send out to the attendees whose information was captured. Each attendee was sent a separate copy of the form letter with their personal photo attached. The application used Microsoft Outlook to send the messages, as required by the client.
Technical Info: The application was developed with C# on .NET 3.5 and runs on Windows XP/Vista/7. The interface with Outlook was accomplished via COM (a.k.a. ActiveX) using the Outlook Object Model. Records are stored in an MS Access 2007 database file. We selected Access as the database format to minimize the software that had to be installed on the production laptop and because of the ease of using it as a source of merge data in applications like MS Word and of exporting it to other programs (e.g. Excel).
