Skip to main content

A set of internal tools for Ohio University's CS3560 course.

Project description

cs3560cli

A set of internal tools for Ohio University's CS3560 course.

Installation

python -m pip install cs3560cli

Features

blackboard student-list Command

Offer a link to get student enrollment data and offer to parse the JSON data into TSV data for an Excel sheet or Google Sheet

Usage

$ python -m cs3560cli blackboard student-list https://blackboard.ohio.edu/ultra/courses/_642196_1/cl/outline

Student list link:

https://blackboard.ohio.edu/learn/api/public/v1/courses/_642196_1/users?fields=id,userId,user,courseRoleId

Visit the link above in your browser.
Then copy and paste in the JSON data below and hit Ctrl-D (EOF) when you are done:

... [JSON Data pasted in by the user] ...

TSV data of the students:


firstName       lastName        emailHandle     isDrop  github-username team-id team-name       m1      m2      m3      m4      final   assigned-ta      note    discord-username        codewars-username       userId  courseMembershipId
... [formatted row of TSV data] ...

You can then copy this TSV data and paste into Excel sheet or Google Sheet.

blackboard categorize Command

When you download all submissions from an assignment, you will get a zip file with files from all students together in one place. This command can group files from a student together in a folder of their username.

$ python -m cs3560cli blackboard categorize gradebook_CS_3560_100_LEC_SPRG_2023-24_HW2.zip hw2
Categorizing files ...
$ ls hw2/
kc555014 ...

watch-zip Command

Watch for an archive file and extract it. This can be useful when you are grading student's submission, so you do not have to manually unzip it.

Usage

$ python -m cs3560cli watch-zip .
$ python -m cs3560cli watch-zip ~/Downloads

highlight Command

Create a syntax highlight code block with in-line style. The result can thus be embed into a content of LMS.

create-gitignore Command

Create a .gitignore file using content from github/gitignore repository.

Usage

$ python -m cs3560cli create-gitignore python
$ python -m cs3560cli create-gitignore cpp

By default, it also add windows and macos to the .gitignore file.

check-username Command

TBD

Scenario

New semester preparation

  1. Obtain the list of enrolled students.
  2. Creating a team in GitHub organization.
  3. Add OU-CS3560/examples to the team.
  4. Invite all students into the team in GitHUb organization.

Requirements

gh extension install mislav/gh-repo-collab
$TeamName = "entire-class-24f"
gh api \
  --method POST \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  /orgs/OU-CS3560/teams \
  -f name="$TeamName" \
  -f notification_setting='notifications_disabled' \
  -f privacy='closed'
gh repo-collab add OU-CS3560/examples "OU-CS3560/$TeamName" --permission read
python -m cs3560cli github bulk-invite

Creating repositories for teams

  1. (manual) Obtain team information (internal-id, members).
  2. Create a team.
  3. Create a repository.
  4. Add team to the repository with maintain permission.
  5. (manual) Invite students to the team.

Requirements

gh extension install mislav/gh-repo-collab
$TeamId = ""
$TeamHandle = "OU-CS3560/" + $TeamId
$RepoHandle = "OU-CS3560/" + $TeamId

$ParentTeamId = python -m cs3560cli github get-team-id OU-CS3560 entire-class-24f | Out-String
gh api \
  --method POST \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  /orgs/OU-CS3560/teams \
  -f parent_team_id=$ParentTeamId \
  -f name="$TeamId" \
  -f notification_setting='notifications_disabled' \
  -f privacy='closed'
gh repo create --private --template OU-CS3560/team-template $RepoHandle
gh repo-collab add $RepoHandle $TeamHandle --permission maintain

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cs3560cli-0.2.1.tar.gz (36.8 kB view details)

Uploaded Source

Built Distribution

cs3560cli-0.2.1-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file cs3560cli-0.2.1.tar.gz.

File metadata

  • Download URL: cs3560cli-0.2.1.tar.gz
  • Upload date:
  • Size: 36.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for cs3560cli-0.2.1.tar.gz
Algorithm Hash digest
SHA256 145f4ca19b4618f4e9c0f0e8c47d4452c2a09a5223156d3a1264a01f4516f97e
MD5 468db6b5ba4fa42609eef58e410f44ac
BLAKE2b-256 36809cf2477ffd7a0b2eb1a1fb8d9e11aff63e479be6611646d051a246d0eef6

See more details on using hashes here.

File details

Details for the file cs3560cli-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: cs3560cli-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 37.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for cs3560cli-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 62914ac5b9d07a78cbf9313b5868065b13e69ef52d0501146c1d67ebd282a792
MD5 fb95b4898e23f33c3800c4ad83e00377
BLAKE2b-256 a7890e8c03b8656e42cab61ac41efaa190c0e03427eea60a2e34c2482865ade0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page