@clickr/common 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)