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.
In general, bug and feature requests should be made by emailing [email protected] 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.
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 [email protected] 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:
- The output from your browser's JavaScript console (see https://webmasters.stackexchange.com/questions/8525/how-do-i-open-the-javascript-console-in-different-browsers).
- A list steps you took to arrive at the problem.
- A brief description of what you expected to happen.
- A screenshot and brief description showing what actually happened.
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.
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.
Yes! Here are a few more involved issues that we'd graciously accept help with:
- (This list will be updated periodically)
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.
For backend development, see the README in the autograder-server repo.
For frontend development, see the README in the ag-website-vue repo.
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: