Skip to content

concord-consortium/teaching-teamwork

Repository files navigation

Teaching Teamwork

Teaching Teamwork was built by The Concord Consortium for the Teaching Teamwork Project.

Environments

Breadboard

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.

Activities

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.

URL Options

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

JSON File Format

A description of the JSON file format can be found in the json-file-formats.md file.

PIC

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.

URL Options

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

Logic Gates

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.

Activities

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.

URL Options

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

JSON File Format

A description of the JSON file format can be found here.

Building and Running Locally

Dependencies

  • Node brew install node
  • Bower npm install -g bower

We use npm to install the developer tools, and bower to manage the javascript libraries:

  npm install
  bower install

Building the library

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.

Testing the breadboard library locally

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

http://localhost:8080/

In combination with Gulp above, this will reload your pages any time any source file is saved.

Deploying to production

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.

Testing

There are currently no unit tests.

  npm test

The tests watch for changes and re-run automatically.

Understanding the code

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.

License

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published