Skip to content
/ pact Public template

A Github based tool designed to help streamline the process of creating, versioning, and distributing programming assignments.

License

Notifications You must be signed in to change notification settings

bviggiano/pact

Repository files navigation

Programming Assignment Creation Tool (PACT) 📄

Build Status Python 3.10+ License: MIT Use This Template

PACT is a simple Github based tool designed to help streamline the process of creating, versioning, and distributing programming assignments.

What is PACT? 📝

The core functionality of PACT is to provide a way to automatically convert the "solution" form of a programming assignment into a version that is ready to be distributed to students. To do this, PACT relies on a few keyword triggers that are placed in the solution code. These triggers and the resulting behavior they cause are highly customizable.

Getting Started 🚀

This PACT repository is designed to be utilized as a starting template for a repository containing the assignments for your course.

Important

Since this repository will contain the solution versions of the assignments, it is recommended to keep it private to prevent students from accessing the solution code.

1. Create Your Repository

  1. Navigate to github.com/bviggiano/pact
  2. Click on the "Use this template" button, located above the file list and next to the "Code" button
  3. Select "Create a new repository"
  4. On the repository creation page, choose a repository name (e.g., CS101) and set the visibility to private

2. Enable GitHub Actions Permissions

Warning

The automated release workflow will fail with a 403 error until you complete this step.

  1. Go to your repository's Settings tab
  2. In the left sidebar, click ActionsGeneral
  3. Scroll down to Workflow permissions
  4. Select Read and write permissions
  5. Click Save

Note

For GitHub Organizations: If your repository is in an organization, you may need to enable this setting at the organization level first. Go to Organization Settings → Actions → General → Workflow permissions.

3. Set Up Local Environment

After configuring permissions, set up the PACT conda environment:

conda env create -f environment.yml
conda activate pact_env
pip install -e .

Tip

Check out the pact/README.md file for detailed information on how to use PACT to create assignments, including trigger keywords and customization options.

Contributing 🤝

Contributions to PACT are welcome! Whether it's adding new features, fixing bugs, or improving documentation, all contributions are appreciated. 😁

License 📝

This project is licensed under the MIT License - see the LICENSE file for details.

Happy Coding! 🚀

About

A Github based tool designed to help streamline the process of creating, versioning, and distributing programming assignments.

Topics

Resources

License

Stars

Watchers

Forks