Skip to content

Latest commit

 

History

History
53 lines (38 loc) · 4.62 KB

CONTRIBUTING.md

File metadata and controls

53 lines (38 loc) · 4.62 KB

Contributing to Autograder.io

Contributions to Autograder.io are always welcome! Autograder.io's source code is divided across a handful of repositories, including the database and API backend, the website frontend, and several supporting libraries:

  • autograder-server: The database and API backend, written with Python + Django.
  • autograder-sandbox: A Python library used for running untrusted code in a Docker container.
  • [ag-website-vue](..: The website frontend, written in Typescript + Vue.
  • ag-client-typescript: A client library for communicating with the API, written in Typescript.
  • autograder-contrib: Utilities for writing command-line applications that use the Autograder.io API.

How do I report a bug or request a new feature?

In general, bug and feature requests should be made by emailing help@autograder.io or by using our central issue tracker. If a lead developer suggests that you create your issue in the issue tracker of a specific repo, then you may do so.

After being discussed, issues in the central tracker will be moved or linked to parallel issues in the repositories where the bug fix or feature request will be implemented.

Website

Before reporting a bug or requesting a new feature, please search our central issue tracker to see if a matching issue already exists. If not, you can either contact us at help@autograder.io or create a new issue. When using the issue tracker, please DO NOT DISCLOSE PRIVATE STUDENT DATA. Similarly, if you find a security issue, contact us directly rather than posting in the issue tracker.

In your issue description, please include:

API Backend

If you are writing an external tool that uses the Autograder.io API and encounter a bug, please search our central issue tracker to see if a matching issue already exists.

In your issue description, please include:

  • A minimal source code snippet that can be used to reproduce the issue.
  • The stack trace and HTTP response body that your program produces.

What issues can I help with?

In general, any open issue is fair game. Issues labelled "size-small" or "good first issue" are likely a good starting point for new developers. Once you've found an issue you'd like to work on, please comment on the issue stating your desire to do so.

I'm looking for something more challenging. Any suggestions?

Yes! Here are a few more involved issues that we'd graciously accept help with:

  • (This list will be updated periodically)

Can I help write documentation?

Yes! Currently, our biggest documentation priority is filling in the gaps in our UI documentation. The markdown source code for the site can be found in the docs folder of this repo. Simply fork this repo, make your desired changes, and then make a pull request for your changes to be merged.

How do I set up my development environment?

For backend development, see the README in the autograder-server repo.

For frontend development, see the README in the ag-website-vue repo.

Coding Standards

When contributing to the autograder-server or autograder-sandbox repositories, please read our Python coding standards.

When contributing to the ag-website-vue or ag-client-typescript repositories, please read our Typescript/Vue coding standards.

Some repositories have additional coding standards documents beyond the language standards mentioned above: