A Student Engagement Tool
EZPoll is a classroom engagement tool designed by Dr. Hans Dulimarta in GVSU’s Mobile Applications and Services Lab. EZPoll is a responsive web application that leverages the students’ smartphones to encourage engagement in the classroom. EZPoll makes it easy for an instructor to pose questions to students in a class that students can respond to instantly on their smartphone. In addition, EZPoll can be used for interactive assessments, or even automating the process of determining class attendance.
This project initially began in 2014 as our exploration into integrating the Cloud to Device Messaging (C2DM) protocol into mobile clients, as well as an exploration into integrating a web client and mobile clients to access shared resources. As a showcase, we envision an interactive polling session in classroom where a teacher posts questions via a web dashboard and the students use their mobile device to submit their response.
The initial EZPoll architecture runs on the Google AppEngine (with a Java Application Server), Web Client, and Android Client. To accelerate the web client development, we then introduced Polymer web components into EZPoll. We strongly believe that incorporating web components is the right choice for this project. We also learned that the development of both the web and Android client to integrate with AppEngine was rather tedious, everytime we updated the Java Application Server, the client libraries for both the web and Android must be regenerated and the corresponding clients must be rebuilt. To speed up our experiment, we decided to replace the AppEngine datastore (and its Java Application Server) with a cloud datastore. Our choices back then were Parse and Firebase, but (for obvious reason) our final selection was Firebase Database. As more features are added to EZPoll, we learn that it is more challenging to maintain property observers that listen to data exchanges among our web custom elements. Especially, when your code excessively depends on two-way data binding. To mitigate data management issues related to two-way binding, we introduced the Unidirectional Data Flow pattern and added Redux to maintain EZPoll global state.
EZPoll is available to academic institutions and can be accessed at https://ezpoll.io.