Skip to content

berkeley-cdss/assignment-snapshots

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

130 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

assignment-snapshots

IRB Protocol ID: 2025-03-18384

  • A command-line interface (CLI) to retrieve OkPy backup data (the "backups CLI") and store it in a local SQLite database
  • A full-stack web application (the "web app") to display the OkPy backup data to help TAs give qualitative feedback on a student's code
  • Exploratory data analysis (EDA) of OkPy backups to examine students' working habits in UC Berkeley's introductory computing courses, CS 61A and DATA C88C, from Fall 2023 - Fall 2025

Setup

  1. Clone the repository with SSH:
git clone git@github.com:berkeley-cdss/assignment-snapshots.git
  1. Follow the instructions in the Backups CLI README's Setup section. You may skip step 4 (retrieving your OkPy backup token) if you don't intend to actually request any backups.
    1. You only need step 4 if you intend to run the request command of the Backups CLI. This also requires that you are added as a course staff member for the course you are requesting the backups from.
  2. Follow the instructions in the Web App README (read and do all the sections; only do the AWS section once you have AWS access).
    1. AWS access is only granted to internal UC Berkeley contributors. See internal onboarding documentation.
    2. When you run the ./bin/dev command, you should only be able to view the home page with the Login button. If you click the button, it will error until you have done the next step.
  3. To get started with some toy development data if you are on the IRB protocol (internal contributors only):
    1. Replace the data directory with the contents of this zip file (unzip it first): data.zip
    2. Follow the steps in the "Dumping the database" section of the Backups CLI README to pipe the data from your local data directory into the snapshots Rails development database

Repo Structure

All source code is located in the src directory. All OkPy backup data is located in the data directory (most of which is ignored by git for privacy reasons).

Backups CLI

  • All code related to the backups CLI is located in the src/backups directory.
  • The main.py file contains the CLI command functions, and then other functions implement specific parts of the backups CLI such as database functions or functions that request or parse the raw OkPy backup data.

Web App

EDA

  • All code related to the assignment snapshots EDA is located in the src/notebooks directory.

Continuous Integration

This repository uses GitHub Actions to run various unit tests and linters. See .github/workflows.

This repository uses the pre-commit package to automatically run the black Python formatter upon running git commit. Hooks can be added to .pre-commit-config.yaml.

Contributors

If you are affiliated with UC Berkeley and are interested in working on this project long-term, please reach out to us!

If you are external to UC Berkeley and/or only wish to make code changes, please feel free to fork the repo and create a pull request to contribute code to the repository. Before requesting a review and merging, ensure that all status checks are passing.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors