@clickr/server v2.1.0
= clickr student response system
image:https://img.shields.io/github/languages/code-size/ftes/clickr.svg["Code size",link="https://github.com/ftes/clickr/graphs/code-frequency"] image:https://img.shields.io/github/license/ftes/clickr.svg["License",link="https://raw.githubusercontent.com/ftes/clickr/master/LICENSE"] image:https://img.shields.io/docker/build/ftes/clickr.svg["Docker Build Status",link="https://hub.docker.com/r/ftes/clickr/builds/"]
clickr is an easy to use, low-cost student response system. It tracks the participation of each student during class by recording which questions the student is willing to answer.
The student indicates his willingness to answer a question by pressing a hardware button.
The current tracking result should be displayed during class so students have instant feedback on their performance.
== Run it
=== npm
. git clone git@github.com:ftes/clickr.git && cd clickr
. npm i
. npm run start
. http://localhost:5000
=== docker
. docker run -p 80:3000 ftes/clickr
. http://localhost
== Tech stack
- link:https://github.com/lerna/lerna[lerna]-based monorepo with two packages link:./packages/serverserver image:https://img.shields.io/david/ftes/clickr.svg?path=packages/server["Dependencies (server)",link="https://david-dm.org/ftes/clickr?path=packages/server"] image:https://img.shields.io/david/dev/ftes/clickr.svg?path=packages/server["Dev Dependencies (server)",link="https://david-dm.org/ftes/clickr?path=packages/server&type=dev"] link:./packages/clientclient image:https://img.shields.io/david/ftes/clickr.svg?path=packages/client["Dependencies (client)",link="https://david-dm.org/ftes/clickr?path=packages/client"] image:https://img.shields.io/david/dev/ftes/clickr.svg?path=packages/client["Dev Dependencies (client)",link="https://david-dm.org/ftes/clickr?path=packages/client&type=dev"]
- link:https://neutrinojs.org[neutrino]-based configuration of packages (eslint, babel, webpack)
- link:./Dockerfiledockerized app, intended to be run on a Raspberry Pi
== Hardware setup
- Raspberry Pi Runs server node.js app Runs client web app in a browser
- Hardware buttons One per student Connected to Raspberry Pi via I/O board ** Server component samples the button status
== Usage
The Raspberry Pi is connected to a projector. The teacher can control it via a mouse.
The teacher verbally poses a question. He then asks the students to indicate whether they know the answer by and clicks a button in the web UI. The students have a certain amount of time (e.g. 5 seconds) to indicate their willingness to answer this question by hitting their button.
The projected web UI should be visible to both teacher and students. It shows a floor-plan chart with one box per student which should reflect the actual layout of the class room. For each student it shows 3 KPIs:
. Willingness to answer last question (field is highlighted). . Number of questions student was willing to answer in this lesson. . Accumulated number of questions student was willing to answer in this and all past lessons.
== Files and Folders .Typical clickr directory structure (link:./docs/examples/filesdocs/examples/files)
source
clickr ├── buttons.csv ├── classes │ ├── 6a │ │ ├── 20181012.csv │ │ ├── 20181015.csv │ │ ├── 20181016.csv │ │ └── students.csv │ ├── 7b │ │ ├── 20181016.csv │ │ ├── 20181028.csv │ │ └── students.csv │ ├── 7c │ │ └── students.csv │ └── 8a
└── options.csv
There are two top-level configuration files (buttons.csv and options.csv). In addition , for each class there is one configuration file (students.csv) and one file per lesson that tracks the student responses.
The .csv (comma separated value) format of the lesson files is ideal for importing and analyzing in a spreadsheet software.
.Typical clickr lesson file (link:docs/examples/files/classes/6a/20181016.csvdocs/examples/files/classes/6a/20181016.csv)
source
include::docs/examples/files/classes/6a/20181016.csv[]
== Configuration Todo
== Button hardware Todo (input via device file, sampling)