Classroom collaborative coding
Enables collaborative programming in the IDE -- think Google Docs for code. Designed for active learning in the classroom, with students working in pairs on small exercises.
http://maxg.github.io/constellation
Open in dev container.
In server
, run npm install
.
Fill in .env
following the .example
:
- start with an empty array of
staff
userFakery
enabled: usernames will be mangled so that the same user has a different username in different browserssecret
can be any string
Run node --env-file .env app
to start the server, and visit it at http://localhost:2180/.
With userFakery
on, note your mangled username in the upper right corner of the landing page to add it to the staff
list.
Restart the server and visit it again as staff to see a link to All projects.
Open in dev container.
In extension
, run npm install
.
Run the Launch extension target to start an extension development VS Code with Constellation.
To connect to the development server:
- Settings → Workspace → Extensions → Constellation → Host:
localhost:2180
Let's collaborate!
-
With
userFakery
on, click Collaborate and note the URL that opens in the default browser. Visit a similar URL in an alternative browser, replacing the long pairing ID with an arbitrary different ID. Use joincodes to pair. -
With lab hours configured, click Collaborate and choose to share with staff. As a staff user or the same user, visit
/edit
to collaborate.
Deprecated.
Install the current JDK and Eclipse for RCP and RAP Developers. Use a separate workspace from e.g. Eclipse for Java.
To download required JAR files into plugin/lib
, either:
- install Maven and run
bin/libs
, or - set up and start the Vagrant VM as described above, and in
/vagrant
run...apt-get install maven
bin/libs
Import the constellation-feature
and constellation-plugin
projects into Eclipse.
Create a run configuration:
- Run → Run Configurations...
- click Eclipse Application and click the New launch configuration button
- Name: rename it to
constellation-1
- Main tab (verify these but no changes should be needed)
- Workspace Data: Location should end in
runtime-constellation-1
- Program to Run: Run a product:
org.eclipse.platform.ide
- Java Runtime Environment: Execution environment: JavaSE-1.8
- Workspace Data: Location should end in
- Plug-ins tab
- Launch with: all workspace and enabled target plug-ins is fine but slow
- check Validate Plug-ins automatically prior to launching
- Configuration tab
- Configuration Area: check Clear the configuration area before launching
- Common tab
- Save as: Shared file:
/constellation-plugin
- Save as: Shared file:
Click Apply to save. Click Run to launch Eclipse with Constellation. The bottom toolbar should include a Collaborate button.
Once that works, create a second run configuration:
- call it
constellation-2
, with a workspace location that ends inruntime-constellation-2
- all other settings identical
You should be able to launch both the constellation-1
and constellation-2
configurations at the same time.
Configure constellation-2
to use a different browser (e.g. Safari if your default browser is Chrome). Both browsers must have your MIT certificate. With userFakery
on, using different browsers will allow the two Eclipses to pair by acting as different users:
- in the
constellation-2
Eclipse, open Preferences - General → Web Browser
- click New, enter a name (e.g. Safari) and Browse... to the application (e.g.
/Applications/Safari.app
) - click Use external web browser and check the new browser you added
- click OK
Let's collaborate! In both development Eclipses:
- create a project (e.g.
hello
) and a Java file (e.g.Hello.java
) - Collaborate and select that project
- the first Eclipse should open the pairing page in your default browser, and the second should use the alternate browser you configured
- complete the pairing
- edit the Java file
- 512 words from the PGP word list, with a few substitutions
- 128 additional computer science-y words