National Kapodistrian University of Athens (NKUA) in 2011 decided to replace the various courses evaluation methods followed by each school, with a Central Survey Service that will facilitate a common methodology and establish common metrics across the university.
It was a challenging endeavour, not only because of the complexity of the functionality required for the evaluation framework, but also due to the breadth and complexity of the organization it was addressing. Being the first and one of the biggest Greek universities, NKUA has more than 2.000 faculty members and 50.000 students and offers nearly 2.000 undergraduate courses across 33 schools.
To make the long story short, either due to cost or scalability issues, we decided to drop clickers and scanners as tools to gather students’ feedback. Online questionnaires proved to be the best solution for us.
We decided to go with Limesurvey as it had a good track record of deployments, it was widely used in academia and above all it was open source software. The advantage of an open source based solution was the fact that it would allow us to adapt it to our needs both in terms of integration and functionality and hopefully contribute our work back to the community.
With HTTP being the TCP layer of the new web era the WebServices and interoperability between applications becomes of paramount importance. Nowadays most web applications need a properly designed API to support Application to Application -or B2B if you prefer- communication and the rationale of our architecture is a good example of this.
The design of our solution was driven by the following principles and constrains:
With all these in mind we concluded on three layer architecture:
So coming back to our initial goal, i.e. building NKUA’s Central Survey Service for courses evaluation we realized that a complete and functional Limesurvey2 Remote Control is crucial if we wanted our new Web Application to fit into the architecture described above.
However at the time of the design of the Service, the API in Limesurvey2 wasn’t fully implemented by the main development team, thus we decided to implement the missing parts and enrich it with those functionalities that would be essential to any development team using the API.
On conclusion of the implementation, the code was contributed back to the main branch, and it is currently a vital part of the LimeSurvey application. Moreover, the NKUA's development team is actively involved in the Limesurvey application, mainly by supporting, maintaining and building new features for the Remotecontrol2 API.
So far we have tried our best to follow best practices on Web Services APIs.
Specifically we paid extra attention on the following design principles:
We also tried to adhere to certain guidelines defined in the LimeSurvey developer’s documentation.
The code is in git-hub and is being constantly synced with the LimeSurvey github project so as to avoid conflicts. It is publicly available at Github.