Join our Community Discussion on Zulip: Contact Us
Setting Up
-
Submitty primarily uses the following languages/frameworks: PHP, Twig, JavaScript, TypeScript, Vue, PostgreSQL, Python, C++.
-
To support development, Submitty uses Git/GitHub, Vagrant, Cypress E2E Testing, PHP/Python unit tests, and a variety of linters and formatters.
-
You’ll need to set up the full system on your own computer. The easiest method is to run the system within a virtual machine (VM). Alternately, you can install the system natively on a dedicated computer and allow outside access (which requires more steps to set up networking, SSL/https, etc.) by following the complete system administrator instructions.
-
Once the system has been successfully installed, read through the Student, Grader, and Instructor instructions to test it out.
Making Contributions
-
Browse our open GitHub Pull Requests. Pick an open PR and read the PR notes, linked issues, and other documentation. Install the updated code on your VM, test the changes, and comment on or review the PR through GitHub
- Look through our GitHub Issues lists for some ideas
of problems to explore.
- IMPORTANT NOTE: We can only “assign” GitHub issues to users who are already members of the Submitty GitHub organization, however, we are very happy to accept, review, and merge contributions from outside of the organization. Students selected for Google Summer of Code and active developers who already have multiple contributions will be added to the Submitty GitHub organization.
- Learn what sections of the code are relevant for those issues (so
you’re not overwhelmed).
- Use “git grep” to search for variables/filenames/specific strings within the source files/directories. This can help you locate relevant files.
- For Developers using VS Code: Use
Ctrl+Shift+Fto search for words inside of files. UseCtrl+Pto search for filenames.
-
Add & delete things to the code, re-install that portion of the system and see what happens. See also Development Instructions.
- Browser DevTools allow you to inspect, debug, and experiment with web pages.
- The
Elements/Inspectortab provides a view of the DOM, and the CSS classes being applied to elements. - The
Consoletab shows browser messages and allows you to run JS on the page.- Use
console.login JavaScript to output to the console. - HINT: Set your javascript console errors to be persistent. This will make any outputs persist on reload.
- Use
- The
Networktab is helpful for seeing what requests are being made. - The
Application/Storagetab allows you to view cookies and items in localStorage.
- The
Helpful Links
These links may be useful throughout your development experience. REMEMBER: If
you ever have any questions about the Submitty’s workflow, the codebase, or a
specific feature, search submitty.org first.
-
Run the relevant portions of test suite locally:
Submitty Testing Instructions -
Submit a Pull Request (PR) with your contributions.
-
Help by Reviewing the Pull Requests of other developers.