Assignment Dashboard is a Flask web application that displays Jupyter notebook files within a GitHub "assignment" repository, and their status within each forked "student" repository.
The app displays whether files are present in the student repository; if so, whether they have been changed, and whether they are valid Jupyter notebook files. Student repositories and files are linked to GitHub.
Clicking on an assignment title displays a collated notebook, with all student answers collected beneath each prompt.
The app also displays additional information about each assignment.
The application does not use authentication, so it should not be run on the open web or in a shared location. (Technically it does not expose any information that is not openly available from the GitHub web interface and API, but it makes this information easier to find.)
These instructions use Docker. See here for alternate instructions that don't use Docker.
... generated by Railroad Diagram Generator
Do these once:
For example: pip install docker-compose
; or one of the installers here.
Create a GitHub personal API token.
Set the GITHUB_API_TOKEN
environment variable to this value.
docker-compose run web initdb
This creates a database in data/database.db
.
It will take a while to run, as Docker creates the application image.
If you subsequently need to run it again in order to reset the database, it will use this existing image.
$ docker-compose run web add_repo repo_owner/repo_name
Add a repository to the database, and download its information from GitHub.
These instructions use Docker. See here for alternate instructions that don't use Docker.
The admin tasks update the project database from GitHub. The web application browses the data in this database.
... generated by Railroad Diagram Generator
$ docker-compose run web updatedb
Update the application database with new users and commits from GitHub.
$ docker-compose run web set_usernames usernames.csv
Update user names in the database from the rows in usernames.csv
.
usernames.csv
should be a CSV file with a column named "name" or "username",
and a column that contains the string "git" (or mixed-case versions of these
strings).
Subsequent execution of updatedb
will replace usernames in the database
by the user's GitHub name if the GitHub name is not empty.
$ docker-compose up
Then browse to http://localhost:5000.
File bugs and enhancement requests here.
See CONTRIBUTING.md for contribution guidelines.
The notebook collation code is derived from original work (paulruvolo/SoftDesSp16Prep) by Paul Ruvolo at Olin College, further modified at osteele/assignment-tools.