While I can’t say anything nice about LimeSurvey’s user interface, it does have a decent API.
When I was searching for open source survey software the API was what made the decision to go with it, easy. We needed to have the ability to pull the survey results out of LimeWire and have them display on another site.
Once I had a connection to the API, building out the app was a matter of choosing a design pattern and going from there. To help with scalability, Abstract Factory was the design pattern I went with for this project. domnikl on github has some great resources for design patterns in PHP, if you need something to get you started.
In fact, the most difficult thing about this project was something seemingly trivial. I need to modify a .csv response to an associative array. I remember thinking that it shouldn’t take as much time as it did, so I’ll post it here for anyone who comes across a similar problem.