Skip to content

jonwestfall/ai-form-submission-check

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AI-Use Form Checker

A screenshot of the UI version of the tool

This repository provides two scripts to help instructors track student completion of an AI-use disclosure form submitted via Google Forms:

  1. check_submissions.py: A command-line Python tool that generates per-class reports and flags exceptions (unmatched student names or assignments).
  2. check_submissions_ui.py: A Streamlit-based web UI that offers an interactive interface for uploading roster and assignment files, specifying the Google Forms CSV URL, configuring output paths, and saving/loading configurations.

Features

  • Multi-class support: Process an arbitrary number of classes by pairing CLASS.txt roster files with corresponding CLASS-assignments.txt assignment lists.
  • Normalization: Handles variations in class names, assignment labels (unifies dashes and whitespace), and form headers.
  • Exception reporting: Flags any (student, assignment) pairs not matching your master lists.
  • CSV outputs: Generates per-class CLASS-report.csv and CLASS-exceptions.csv files.
  • Config persistence (UI only): Save and load your sidebar settings in a single JSON file.

Prerequisites

Both scripts require:

  • Python 3.7+
  • pandas for CSV parsing

Additionally, the UI script requires Streamlit.

Install dependencies:

pip install pandas
# For UI script only:
pip install streamlit

1. Command-Line Tool: check_submissions.py

Usage

  1. Prepare your text files:

    • CLASS.txt: One student name per line (e.g., psy393.txt).
    • CLASS-assignments.txt: One assignment name per line (e.g., psy393-assignments.txt).
  2. Run the script:

    python check_submissions.py \
      --students psy393.txt epy601.txt \
      --assignments psy393-assignments.txt epy601-assignments.txt \
      --responses-url "https://docs.google.com/spreadsheets/d/e/.../pub?output=csv" \
      --output-dir reports
  3. Output:

    • reports/psy393-report.csv
    • reports/psy393-exceptions.csv
    • ... and similarly for epy601.

Key Arguments

  • --students: Space-separated list of roster files.
  • --assignments: Space-separated list of assignment-list files (must end in -assignments.txt).
  • --responses-url: Published Google Sheets CSV URL for your form responses.
  • --output-dir: Directory to write the per-class CSVs.

2. Streamlit UI: check_submissions_ui.py

Launching

streamlit run check_submissions_ui.py

Sidebar Options

  1. Load configuration (.json) to prefill URL and output path.
  2. Google Form CSV URL: Paste your .../pub?output=csv link. Here is a copy of my form that you can copy to your own account: https://docs.google.com/forms/d/1FcdzUhvX6Jhh5xdNXBO5sMfTfH9XEqeNhvx-d5lhY14/edit
  3. Upload roster files (.txt) and assignment files (.txt).
  4. Output directory: Specify where CSVs should be saved.
  5. Run Report:
    • Displays per-class tables for submissions and exceptions.
    • Provides Download buttons for each CSV.
    • Offers a Save configuration download to reuse settings.

How It Works

  1. Reading form responses: Both scripts override the Google Forms header, applying fixed column names for reliable parsing.
  2. Normalization:
    • Class codes are lowercased and non-alphanumeric stripped for matching.
    • Assignment labels unify all dash variants to - and collapse whitespace.
  3. Reporting:
    • Groups responses by class and assignment.
    • Computes who has submitted and who is missing per assignment.
  4. Exceptions: Any (student, assignment) row not in your master lists is flagged and output separately.

Contributing

Feel free to open issues or pull requests to improve functionality—especially for features like:

  • Automated email reminders.
  • Fuzzy matching for minor typos.
  • Support for additional form fields or custom validations.

Happy teaching! 🎓

About

A script that checks if students have submitted the AI Submission Form and reports back.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages