Suggestions for New Developers
-
Join our Community Discussion on Zulip: Contact Us
-
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.
-
Read through the Student, Grader, and Instructor instructions and try it out.
-
Learn how to use git.
-
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. But 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).
- Hint: Use “git grep” to search for variables/filenames/specific strings within the source files/directories. This can help you locate relevant files.
-
Add & delete things to the code, re-install that portion of the system and see what happens. See also Development Instructions.
-
Use inspector, browser debugger, javascript console, etc.
- Hint: It is helpful to set your javascript console errors to be persistent (so they don’t disappear when the page reloads). E.g., in Chrome, you need to set “Console:Preserve log on navigation”, or in Firefox, “Enable persistent logs”.
-
As you read the code, make a diagram for yourself of how the system fits together.
-
Use jsfiddle (for testing or demoing new things).
-
Keep a work diary / log: what did you plan to do today, keep track of how long it took you to do things, difficulties, how did you solve it, helpful reference links, and what’s your plan for tomorrow.
-
Get familiar with vagrant.
-
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.