Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ learning analytics dashboard to help instructors be able to manage
student learning processes, and in particular, student writing
processes.

![linting](https://github.com/ETS-Next-Gen/writing_observer/actions/workflows/pycodestyle.yml/badge.svg)
![linting](https://github.com/ArgLab/writing_observer/actions/workflows/pycodestyle.yml/badge.svg)

## Learning Observer

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.0+2026.02.03T15.21.57.253Z.1310c89e.berickson.20260130.execution.dag.single.value
0.1.0+2026.02.17T15.09.06.345Z.5f75e49b.berickson.20260217.updated.dead.links
2 changes: 1 addition & 1 deletion devops/tasks/remote_scripts/gitpaths.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def gitpath_to_name(packagepath):
'''
Convert a git path to the name of the repo. For example:

`https://github.com/ETS-Next-Gen/writing_observer.git` ==> `writing_observer`
`https://github.com/ArgLab/writing_observer.git` ==> `writing_observer`
'''
package = os.path.split(packagepath)[1]
if package.endswith(".git"):
Expand Down
2 changes: 1 addition & 1 deletion devops/tasks/scripts/baseline_packages.fab
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cd
sudo apt-get -y install git ansible awscli
git clone https://github.com/ETS-Next-Gen/writing_observer.git
git clone https://github.com/ArgLab/writing_observer.git
cd writing_observer/devops/ansible ; sudo ansible-playbook local.yaml
4 changes: 2 additions & 2 deletions docs/tutorials/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ Have two terminal windows or tabs open. We will run the server in one and use th
1. Open a terminal and clone the repository:

```bash
git clone https://github.com/ETS-Next-Gen/writing_observer.git lo_tutorial
git clone https://github.com/ArgLab/writing_observer.git lo_tutorial
```

If you have an SSH key configured with GitHub, you can use:

```bash
git clone git@github.com:ETS-Next-Gen/writing_observer.git lo_tutorial
git clone git@github.com:ArgLab/writing_observer.git lo_tutorial
```

2. Change into the new directory:
Expand Down
12 changes: 6 additions & 6 deletions docs/tutorials/workshop.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ If you don't have a way of managing Python virtual environments, or would prefer
First make sure you clone the repository:

```bash
git clone https://github.com/ETS-Next-Gen/writing_observer.git lo_workshop
git clone https://github.com/ArgLab/writing_observer.git lo_workshop
```

**or**, if you have a github account properly configured with ssh:

```bash
git clone git@github.com:ETS-Next-Gen/writing_observer.git lo_workshop
git clone git@github.com:ArgLab/writing_observer.git lo_workshop
```

```bash
Expand Down Expand Up @@ -173,7 +173,7 @@ This will generate events for 10 students typing a set of loremipsum texts and s

You can look at the format of these specific events in the `/learning_observer/learning_observer/logs/` directory. In the test system, we simply put events into log files, but we are gradually moving towards a more sophisticated, open-science, family-rights oriented data store (shown at the bottom of [this document](system_design.md). This is theoretically interesting, since it gives a cryptographically-verifiable way to audit what data was created and what analyses ran.

There are several good standards for [event formats](events.md), and to integrate learning data, we will need to support them all. Most of these have converged on a line of JSON per event, but the specifics are format-specific. We are including [some code](https://github.com/ETS-Next-Gen/writing_observer/blob/master/modules/lo_event/lo_event/xapi.cjs) to help support the major ones. However, the events here are somewhat bound to how Google Docs thinks about documents.
There are several good standards for [event formats](events.md), and to integrate learning data, we will need to support them all. Most of these have converged on a line of JSON per event, but the specifics are format-specific. We are including [some code](https://github.com/ArgLab/writing_observer/blob/master/modules/lo_event/lo_event/xapi.cjs) to help support the major ones. However, the events here are somewhat bound to how Google Docs thinks about documents.

## module.py

Expand Down Expand Up @@ -251,7 +251,7 @@ In `module.py`, you see this line:
EXECUTION_DAG = learning_observer.communication_protocol.util.generate_base_dag_for_student_reducer('student_event_counter', 'my_event_module')
```

This is shorthand for a common query which JOINs the class roster with the output of the reducers. The Python code for the query itself is [here](https://github.com/ETS-Next-Gen/writing_observer/blob/berickson/workshop/learning_observer/learning_observer/communication_protocol/util.py#L58), but the jist of the code is:
This is shorthand for a common query which JOINs the class roster with the output of the reducers. The Python code for the query itself is [here](https://github.com/ArgLab/writing_observer/blob/berickson/workshop/learning_observer/learning_observer/communication_protocol/util.py#L58), but the jist of the code is:

```python
'roster': course_roster(runtime=q.parameter('runtime'), course_id=q.parameter("course_id", required=True)),
Expand Down Expand Up @@ -326,11 +326,11 @@ Once set up, the development workflow here is rather fast, since the UX updates

### `lo_event`

Our data streaming library is [lo_event](https://github.com/ETS-Next-Gen/writing_observer/tree/master/modules/lo_event). This library is designed to stream events (typically) from a JavaScript client, and handles all of the complexity of things like persistance, queuing, and retries for you. Cookiecutter cde, but it should save you a bunch of time.
Our data streaming library is [lo_event](https://github.com/ArgLab/writing_observer/tree/master/modules/lo_event). This library is designed to stream events (typically) from a JavaScript client, and handles all of the complexity of things like persistance, queuing, and retries for you. Cookiecutter cde, but it should save you a bunch of time.

### `lo_assess`

Much more interesting, in development (and probably in need of renaming) is [`lo_assess`](https://github.com/ETS-Next-Gen/writing_observer/tree/pmitros/loevent-v2/modules/lo_event/lo_event/lo_assess).
Much more interesting, in development (and probably in need of renaming) is [`lo_assess`](https://github.com/ArgLab/writing_observer/tree/pmitros/loevent-v2/modules/lo_event/lo_event/lo_assess).

There is an XML format (based on edX OLX, which is in turn based on LON-CAPA XML) for creating interactives.

Expand Down
2 changes: 1 addition & 1 deletion extension/writing-process/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"author": "Piotr Mitros, Bradley Erickson",
"repository": {
"type": "git",
"url": "https://github.com/ETS-Next-Gen/writing_observer/tree/master/extension/writing-process"
"url": "https://github.com/ArgLab/writing_observer/tree/master/extension/writing-process"
},
"scripts": {
"ext:start": "xt-build -e dev -w",
Expand Down
2 changes: 1 addition & 1 deletion extension/writing-process/src/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "__MSG_appName__",
"short_name": "__MSG_appShortName__",
"description": "__MSG_appDescription__",
"homepage_url": "https://github.com/ETS-Next-Gen/writing_observer/tree/master/extension/writing-process",
"homepage_url": "https://github.com/ArgLab/writing_observer/tree/master/extension/writing-process",
"incognito": "not_allowed",
"version": "1.0.0.2",
"version_name": "1.0.0.2",
Expand Down
2 changes: 1 addition & 1 deletion learning_observer/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.0+2026.02.03T15.21.57.253Z.1310c89e.berickson.20260130.execution.dag.single.value
0.1.0+2026.02.17T15.09.06.345Z.5f75e49b.berickson.20260217.updated.dead.links
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ In `module.py`, you see this line:
EXECUTION_DAG = learning_observer.communication_protocol.util.generate_base_dag_for_student_reducer('student_event_counter', 'my_event_module')
```

This is shorthand for a common query which JOINs the class roster with the output of the reducers. The Python code for the query itself is [here](https://github.com/ETS-Next-Gen/writing_observer/blob/berickson/workshop/learning_observer/learning_observer/communication_protocol/util.py#L58), but the jist of the code is:
This is shorthand for a common query which JOINs the class roster with the output of the reducers. The Python code for the query itself is [here](https://github.com/ArgLab/writing_observer/blob/berickson/workshop/learning_observer/learning_observer/communication_protocol/util.py#L58), but the jist of the code is:

```python
'roster': course_roster(runtime=q.parameter('runtime'), course_id=q.parameter("course_id", required=True)),
Expand Down
4 changes: 2 additions & 2 deletions learning_observer/learning_observer/downloads.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@
"62618d4bff6e51fafa25d41cb59bd97f3ebd72fd94ebd09a52c17c4c23fdca3962b"
}
SHOWDOWN_JS = {
"url": "https://rawgit.com/showdownjs/showdown/1.9.1/dist/showdown.js",
"url": "https://cdn.jsdelivr.net/gh/showdownjs/showdown@1.9.1/dist/showdown.js",
"hash": "4fe14f17c2a1d0275d44e06d7e68d2b177779196c6d0c562d082eb5435eec"
"4e710a625be524767aef3d9a1f6a5b88f912ddd71821f4a9df12ff7dd66d6fbb3c9"
}
SHOWDOWN_JS_MAP = {
"url": "https://rawgit.com/showdownjs/showdown/1.9.1/dist/showdown.js.map",
"url": "https://cdn.jsdelivr.net/gh/showdownjs/showdown@1.9.1/dist/showdown.js.map",
"hash": "74690aa3cea07fd075942ba9e98cf7297752994b93930acb3a1baa2d3042a"
"62b5523d3da83177f63e6c02fe2a09c8414af9e1774dad892a303e15a86dbeb29ba"
}
Expand Down
6 changes: 3 additions & 3 deletions learning_observer/learning_observer/module.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,12 @@
"62618d4bff6e51fafa25d41cb59bd97f3ebd72fd94ebd09a52c17c4c23fdca3962b"
},
"showdown.js": { # Default markup library
"url": "https://rawgit.com/showdownjs/showdown/1.9.1/dist/showdown.js",
"url": "https://cdn.jsdelivr.net/gh/showdownjs/showdown@1.9.1/dist/showdown.js",
"hash": "4fe14f17c2a1d0275d44e06d7e68d2b177779196c6d0c562d082eb5435eec"
"4e710a625be524767aef3d9a1f6a5b88f912ddd71821f4a9df12ff7dd66d6fbb3c9"
},
"showdown.js.map": { # Part of above
"url": "https://rawgit.com/showdownjs/showdown/1.9.1/dist/showdown.js.map",
"url": "https://cdn.jsdelivr.net/gh/showdownjs/showdown@1.9.1/dist/showdown.js.map",
"hash": "74690aa3cea07fd075942ba9e98cf7297752994b93930acb3a1baa2d3042a"
"62b5523d3da83177f63e6c02fe2a09c8414af9e1774dad892a303e15a86dbeb29ba"
},
Expand Down Expand Up @@ -115,7 +115,7 @@
STATIC_FILE_GIT_REPOS = {
# 'writing_observer': {
# # Where we can grab a copy of the repo, if not already on the system
# 'url': 'https://github.com/ETS-Next-Gen/writing_observer.git',
# 'url': 'https://github.com/ArgLab/writing_observer.git',
# # Where the static files in the repo lie
# 'prefix': 'learning_observer/learning_observer/static',
# # Branches we serve. This can either be a whitelist (e.g. which ones
Expand Down
2 changes: 1 addition & 1 deletion learning_observer/learning_observer/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ def register_repo_routes(app, repos):
An example repo is:

{
'url': 'https://github.com/ETS-Next-Gen/writing_observer.git', // URL to the repo; downloaded if not already here
'url': 'https://github.com/ArgLab/writing_observer.git', // URL to the repo; downloaded if not already here
'prefix': 'modules/writing_observer/writing_observer/static', // Path in repo to serve static files from
'module': 'wobserver', // Module name to use in the static path

Expand Down
2 changes: 1 addition & 1 deletion learning_observer/learning_observer/static/debug.html
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
Service. The <a href="https://github.com/ETS-Next-Gen/writing_analysis">source
code</a> is available
under <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">the
AGPLv3 license</a> on <a href="https://github.com/ETS-Next-Gen/writing_observer">github</a>.
AGPLv3 license</a> on <a href="https://github.com/ArgLab/writing_observer">github</a>.
</p>
</div>
</footer>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ <h1 class='lo-server-name'> {{ server_name }} </h1>
<i class="fab fa-github" aria-hidden="true"></i>
</span>
Contribute
on <a href="https://github.com/ETS-Next-Gen/writing_observer">github</a> </p>
on <a href="https://github.com/ArgLab/writing_observer">github</a> </p>
</div>
</div>
<div class="column">
Expand Down
2 changes: 1 addition & 1 deletion learning_observer/learning_observer/static/webapp.html
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
Service. The <a href="https://github.com/ETS-Next-Gen/writing_analysis">source
code</a> is available
under <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">the
AGPLv3 license</a> on <a href="https://github.com/ETS-Next-Gen/writing_observer">github</a>.
AGPLv3 license</a> on <a href="https://github.com/ArgLab/writing_observer">github</a>.
</p>
</div>
</footer>
Expand Down
6 changes: 3 additions & 3 deletions modules/lo_event/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@
},
"repository": {
"type": "git",
"url": "git+https://github.com/ETS-Next-Gen/writing_observer.git"
"url": "git+https://github.com/ArgLab/writing_observer.git"
},
"author": "Piotr Mitros",
"license": "SEE LICENSE IN license.txt",
"bugs": {
"url": "https://github.com/ETS-Next-Gen/writing_observer/issues"
"url": "https://github.com/ArgLab/writing_observer/issues"
},
"homepage": "https://github.com/ETS-Next-Gen/writing_observer#readme",
"homepage": "https://github.com/ArgLab/writing_observer#readme",
"type": "module",
"dependencies": {
"aws-sdk": "^2.1614.0",
Expand Down
2 changes: 1 addition & 1 deletion modules/toy-assess/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This may require also running
npm audit fix

You will also need to install writing_observer and package up lo_event to use inside the project.
Place to clone from: https://github.com/ETS-Next-Gen/writing_observer
Place to clone from: https://github.com/ArgLab/writing_observer
cd to cloned directory, type npm install

Then, inside writing_observer/modules/lo_event:
Expand Down
2 changes: 1 addition & 1 deletion modules/wo_bulk_essay_analysis/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.0+2025.09.30T15.53.18.556Z.1c72d9e1.master
0.1.0+2026.02.17T15.09.06.345Z.5f75e49b.berickson.20260217.updated.dead.links
2 changes: 1 addition & 1 deletion modules/wo_bulk_essay_analysis/setup.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[metadata]
name = WO Bulk Essay Analysis
description = Dashboard for interfacing a classroom of essays with automated feedback
url = https://github.com/ETS-Next-Gen/writing_observer
url = https://github.com/ArgLab/writing_observer
version = file:VERSION

[options]
Expand Down
2 changes: 1 addition & 1 deletion modules/wo_common_student_errors/setup.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[metadata]
name = Writing Observer Common Student Errors
description = Dashboard for viewing errors across a classroom of students.
url = https://github.com/ETS-Next-Gen/writing_observer
url = https://github.com/ArgLab/writing_observer
version = 0.1

[options]
Expand Down
2 changes: 1 addition & 1 deletion modules/wo_document_list/setup.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[metadata]
name = Writing Observer List of Documents
description = Dashboard for viewing documents from various sources for each student.
url = https://github.com/ETS-Next-Gen/writing_observer
url = https://github.com/ArgLab/writing_observer
version = 0.1

[options]
Expand Down
2 changes: 1 addition & 1 deletion modules/wo_highlight_dashboard/setup.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[metadata]
name = Dash Writing Observer Class Highlight Dashboard
description = Dashboard using Dash for the Writing Observer
url = https://github.com/ETS-Next-Gen/writing_observer
url = https://github.com/ArgLab/writing_observer
version = 0.1

[options]
Expand Down
2 changes: 1 addition & 1 deletion modules/writing_observer/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.0+2026.02.02T20.54.51.168Z.c0f2a8f0.berickson.20260113.extension.tab.ids
0.1.0+2026.02.17T15.09.06.345Z.5f75e49b.berickson.20260217.updated.dead.links
2 changes: 1 addition & 1 deletion modules/writing_observer/writing_observer/module.py
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@
STATIC_FILE_GIT_REPOS = {
'writing_observer': {
# Where we can grab a copy of the repo, if not already on the system
'url': 'https://github.com/ETS-Next-Gen/writing_observer.git',
'url': 'https://github.com/ArgLab/writing_observer.git',
# Where the static files in the repo lie
'prefix': 'modules/writing_observer/writing_observer/static',
# Branches we serve. This can either be a whitelist (e.g. which ones
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@
},
"repository": {
"type": "git",
"url": "git+https://github.com/ETS-Next-Gen/writing_observer.git"
"url": "git+https://github.com/ArgLab/writing_observer.git"
},
"author": "",
"license": "SEE LICENSE IN LICENSE.TXT",
"bugs": {
"url": "https://github.com/ETS-Next-Gen/writing_observer/issues"
"url": "https://github.com/ArgLab/writing_observer/issues"
},
"homepage": "https://github.com/ETS-Next-Gen/writing_observer#readme",
"homepage": "https://github.com/ArgLab/writing_observer#readme",
"devDependencies": {
"@actions/core": "^1.10.0",
"eslint": "^8.38.0",
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ svgwrite
uvloop
watchdog

gitserve @ git+https://github.com/ETS-Next-Gen/writing_observer.git#subdirectory=gitserve
gitserve @ git+https://github.com/ArgLab/writing_observer.git#subdirectory=gitserve
6 changes: 3 additions & 3 deletions scripts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
},
"repository": {
"type": "git",
"url": "git+https://github.com/ETS-Next-Gen/writing_observer.git"
"url": "git+https://github.com/ArgLab/writing_observer.git"
},
"author": "Piotr Mitros",
"license": "AGPL-3.0",
"bugs": {
"url": "https://github.com/ETS-Next-Gen/writing_observer/issues"
"url": "https://github.com/ArgLab/writing_observer/issues"
},
"homepage": "https://github.com/ETS-Next-Gen/writing_observer#readme",
"homepage": "https://github.com/ArgLab/writing_observer#readme",
"dependencies": {
"ws": "^8.17.1"
}
Expand Down
2 changes: 1 addition & 1 deletion ux/ux.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/3.1.0/mustache.min.js"></script>

<!-- We use showdown to render the problems and hints -->
<script src="https://rawgit.com/showdownjs/showdown/1.9.1/dist/showdown.js"></script>
<script src="https://cdn.jsdelivr.net/gh/showdownjs/showdown@1.9.1/dist/showdown.js"></script>

<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="utf-8">
Expand Down
8 changes: 4 additions & 4 deletions wo_requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
writing_observer @ git+https://github.com/ETS-Next-Gen/writing_observer.git#subdirectory=modules/writing_observer/
lo_gpt @ git+https://github.com/ETS-Next-Gen/writing_observer.git#subdirectory=modules/lo_gpt/
wo_bulk_essay_analysis @ git+https://github.com/ETS-Next-Gen/writing_observer.git#subdirectory=modules/wo_bulk_essay_analysis/
wo_classroom_text_highlighter @ git+https://github.com/ETS-Next-Gen/writing_observer.git#subdirectory=modules/wo_classroom_text_highlighter/
writing_observer @ git+https://github.com/ArgLab/writing_observer.git#subdirectory=modules/writing_observer/
lo_gpt @ git+https://github.com/ArgLab/writing_observer.git#subdirectory=modules/lo_gpt/
wo_bulk_essay_analysis @ git+https://github.com/ArgLab/writing_observer.git#subdirectory=modules/wo_bulk_essay_analysis/
wo_classroom_text_highlighter @ git+https://github.com/ArgLab/writing_observer.git#subdirectory=modules/wo_classroom_text_highlighter/
Loading