CLAIRE is a classroom management, enriched with reflexive processes. It is designed to emphasize on methods and interactions with a high reflexive outcome in students and teachers.
It encourages non-behaviouristic teaching by being as unopinionated as possible when it comes to any action within the classroom:
- teachers can design a fully detailed list of phases for a lesson but there is no determinism forcing them to execute their lesson in this sequence
- teachers can freely activate / deactivate learning material for students and the beamer at any moment of an active lesson
- students are free to skip any interaction
- teachers and students can create artifacts together, based on student's replies and reflexive discourse
- the system does not enforce to reveal the identity an answer's respondent to the rest of the class
Watch the technical overview video from Meteor Impact 2021:
Direct link: https://www.youtube.com/watch?v=upKaZyVfONE
Watch the promotional video about CARO, a reference implementation using CLAIRE:
Direct link: https://player.vimeo.com/video/675438161?h=33c7c08bd1
CLAIRE is a monolithic application by choice, thus it can run on a single VM or bare metal server.
We use mup
(Meteor-Up) as a config-based one-step deployment, so you just need to run a
script that configures the server and deploys the app.
-
You need a root / sudo-privileged account on a server including ssh access. We recommend ssh access using ssh-keys instead of passwords. However,
mup
supports both authentication types, see their docs. -
The server should have at least 512MB of RAM, 5 GB of available disc space and 1 (virtual) CPU. With these specs you will be able to run several classrooms at the same time. However, if you are a larger institution and / or want to share larger files (videos, images etc.) within the classes you may consider at least 2GB RAM, 2 (virtual) CPUs and as many as disk space as possible required.
TBD
TBD
TBD
CLAIRE is a public project that is developed by people like you. There are always parts to improve:
- test coverage improvement
- refactoring code
- improve translation
- add new item types or visualization formats
To install CLAIRE for development, please follow the next steps.
You first need to install Meteor. NodeJS and NPM are not required as they are shipped with Meteor. Don't use your own NodeJs, since Meteor requires those bundled versions in order to function properly. You can install Meteor either via
$ curl https://install.meteor.com/ | sh
or via
$ npm install -g meteor
Then you need to clone this repository and install the NPM dependencies:
$ git clone git@github.com:classroom-interaction-environment/claire.git
# alternatively use https if you don't have ssh access:
# git clone https://github.com/classroom-interaction-environment/claire.git
Then you need to cd into the src
folder, install npm dependencies and finally start the app via
the provided run script:
$ cd src
$ meteor npm run install:core
$ meteor npm run install:peers
$ ./scripts/run.sh
We have decided to make CLAIRE explicitly monolithic and self-contained. It does not rely on third-party services (except an Email-Provider but you could also configure your server to send emails).
However, in order to keep things flexible we decided to add a plugin system, so you can extend CLAIRE on your own without the need to get involved into the core codebase.
The following section describes the folder structure and their respective role in the project. Each of them has it's own README that describes the conventions and roles of it's content and subfolders.
Folder | Description |
---|---|
app |
The Meteor project, containing the CLAIRE application |
docs |
Documentation of the project |
specs |
Specification and convetions of the project |
lib |
Library with internal packages, that are also publicly available |
resources |
Global development resources and assets |
scripts |
Global scripts for common managing tasks |
Furthermore, there are folders, that you may use for specific purposes but which are ignored by default using the .gitignore:
Folder | Description |
---|---|
bulds |
Target folder for build outputs. Used when locally building instead of deploying to a server |
extlib |
Library for external packages, which can be cloned and linked for debugging or package-development purposes |
node_modules |
Contains NPM dependencies |
.idea , .vscode , .atom |
IDE SPecific configurations |
CLAIRE supports multiple platform targets. The supported platforms are described in the following sections. To develop for the web, you only need a browser in order to run CLAIRE. Any modern browser will be sufficient.
Use the run script to run the app:
$ ./scripts/run.js
We use the following test stack:
- mocha (testrunner)
- chai (asserter)
- sinon (mocks, stubs)
- istanbul/nyc (coverage)
We created a sophisticated test script to ease up different test setups:
$ ./scripts/test.sh [ options ]
where options
allows for the following parameters (accepts multiple at the same time):
Parameter | Argument | Description |
---|---|---|
-a | <String> |
Filter architecture, allowed values: server or client |
-b | Use a real browser for client tests (default is headless) | |
-c | Activate code-coverage reports | |
-g | <RegExp> |
Filter tests by a given RegExp (uses Mocha-grep) |
-h | Show help | |
-o | Runs the tests only once (default is watch-mode) | |
-v | Verbose mode with extra prints |
Running only server-side tests (-a) once (-o) with coverage (-c) would result in the following command:
$ ./scripts/test.sh -o -c -a server
CLAIRE has been developed as part of the research project "CARO - Care Reflexion Online" and has received funding from the German Federal Ministry of Education and Research (FKN: 01PD15012) as well as the ESF (European Social Func).
This work is published unter AGPL-3.0 as stated in the license file.