Too many students are forced to waste money on the "iClicker," a massively overpriced hand-held remote polling device popular with some college professors for taking attendance, quizzes, and gauging lecture understanding in large classes. Another example of the routine price scalping for school supplies students face every year, the primary motivation for my OpenClicker is: I want my $40 back
No clicker hardware.
No mobile apps.
No physical base-station.
No cost.
Create a poll, display it to a class, and let students respond on their own devices for free.
Polls are served to students over wireless LAN from a single laptop or desktop computer.
Smartphones, tablets, laptops, desktops; most any device with a modern web browser should be able to participate in an OpenClicker quiz.
OpenClicker's core is single desktop application built on Electron with HTML5 front end and Node.js back end. When an instructor opens a quiz, a small Node.js web server makes the polling GUI available to students on the same wireless LAN.
When a quiz is open, students simply enter the information on the instructor's screen into their web browsers on mobile or desktop. The GUI itself is HTML5 and JavaScript.
In this way, no special mobile app or hardware is required for students and no base station hardware is necessary for instructors. GUI styling for both the core and polling GUI uses Bootstrap themes from Bootswatch for a consistent, responsive interface.
Making the OpenClicker Core and especially Polling GUI share a common feel and functionality across a variety of devices without having to result to a remotely hosted HTML5 hybrid application and/or multiple unsustainable native applications. I was able to successfully use the particular setting that OpenClicker would be expected to work in to make this possible. I took advantage of the shared LAN connection between all participants in a clicker quiz to serve an HTML5 interface without relying on any external hosting services.
Something I had to keep in mind during development was that the application would potentially have to scale to lecture halls of ~500 students. Functionality on the core server was written as mostly asynchronous Node.js for all functionality that could come under high demand during a quiz and networked data transfers are optimized to avoid eating up unnecessary bandwidth, which should all lend the application to scalability in theory.
The value of designing to creatively leverage technologies outside of their intended, documented use cases.
Electron
More advance usage of Node.js & JavaScript
Caffinated cereal exists and keeps me v e r y awake.
Code legibility and documentation overhaul
Remove hard-coded restrictions (number of questions/possible answers)
Improved data validation
More useful insights visualization/analysis built-in for results.
Distribution