Teaching Teamwork was built by The Concord Consortium for the Teaching Teamwork Project.
This was the initial Teaching Teamwork environment and builds upon the Breadboard library. It enables either one or three players to solve analog electronic problems defined using an authorable JSON file.
All activities are defined in JSON files contained the activities/breadboard
folder. Once an activity is defined and published it can be
used by specifying the activity name after the hash mark in the URL.
For example, the activities/breadboard/three-resistors-level1.json
activity can be used via
http://concord-consortium.github.io/teaching-teamwork/#three-resistors-level1.
The following are the options that can be specified in the URL query string. It only needs to be present - it does not need a value assigned to it.
- logToConsole - prints all log messages to the console in a compact form
- researcherMode - changes the groups to a disjoint researcher group to avoid polluting the research log data
Example: http://concord-consortium.github.io/teaching-teamwork/?logToConsole#three-resistors-level1
A description of the JSON file format can be found in the json-file-formats.md file.
This is the second Teaching Teamwork environment. It enables either one or three players to build a keypad to led circuit using three pre-programmed PICs. The activity is fixed and cannot be authored in a JSON file.
There are many options that can be specified in the URL query string. These options only need to be present in the query string, they do not need to have values assigned to them and they can be combined in any order.
- logToConsole - prints all log messages to the console in a compact form
- showPinColors - shows low/high value of the component pins
- allowAutoWiring - enables a "Toggle Wires" button that adds all the wires to the activity, useful for debugging
- showSimulator - enables the PIC simulator buttons to allow for stopping and stepping through the PIC code
- soloMode - enables single user mode, this skips all Firebase login and board selection
- showBusLabels - enables labels next to bus connector holes
- showBusColors - shows low/high value of the bus connector holes
- showProbeInEdit - enables display of probe only when editing a circuit
- hideProbe - hides probe in edit and "all" view
- hideInputAutoToggles - hides the increment and decrement controls next to the local board input switches
- researcherMode - changes the groups to a disjoint researcher group to avoid polluting the research log data
- allowExport - enables display of "Export Activity" link
Example: http://concord-consortium.github.io/teaching-teamwork/pic/?logToConsole&soloMode
This is the third Teaching Teamwork environment. It enables one or more players to build 74xx based circuits using a set of chips defined in an authorable JSON file.
All activities are defined in JSON files contained the activities/logic-gates
folder. Once an activity is defined and published it can be
used by specifying the activity name after the hash mark in the URL.
For example, the activities/logic-gates/all-chips.json
activity can be used via
http://concord-consortium.github.io/teaching-teamwork/logic-gates/#all-chips.
The following are the options that can be specified in the URL query string. An option only needs to be present - it does not need a value assigned to it.
- logToConsole - prints all log messages to the console in a compact form
- soloMode - enables single user mode, this skips all Firebase login and board selection
- researcherMode - changes the groups to a disjoint researcher group to avoid polluting the research log data
- autoWire - performs the autowiring as soon as the activity loads if the json allows auto wiring
Example: http://concord-consortium.github.io/teaching-teamwork/logic-gates/?logToConsole#all-chips
A description of the JSON file format can be found here.
We use npm to install the developer tools, and bower to manage the javascript libraries:
npm install
bower install
Breadboard uses Browserify to build the script and create the app.js file.
We build automatically and watch for changes using Gulp. Building the dist/ folder is as simple as
npm start
Any changes to the script source, the css, or the examples folder will automatically be rebuilt.
In order to load the example activities in the /examples folder, you just need to serve the contents of the /breadboard directory using a local server, such as Python's SimpleHTTPServer or Live Server.
Live Server is a simple static server that will automatically reload pages when it detects changes to the source.
npm install -g live-server
cd dist
live-server
The server runs on port 8080 by default. Open a browser and navigate to
In combination with Gulp above, this will reload your pages any time any source file is saved.
Production releases to S3 are based on the contents of the /dist folder and are built automatically by Travis for each branch pushed to GitHub and each merge into master.
Merges into master are deployed to http://teaching-teamwork.concord.org.
Other branches are deployed to http://teaching-teamwork.concord.org/branch/.
You can view the status of all the branch deploys here.
There are currently no unit tests.
npm test
The tests watch for changes and re-run automatically.
The TT views are written in React. React components have a single render() method, which renders DOM elements based on the view's state and properties. The component gets efficiently re-rendered if its state or properties change.
React breaks the traditional MVC pattern, and the view handles much more of the logic and state of the application that we are used to with normal MVC apps. This is ok.
The TT model is contained in Firebase, and is not explicitly re-represented in the app.
Teaching Teamwork is Copyright 2015 (c) by the Concord Consortium and is distributed under the MIT license.
See license.md for the complete license text.