Automating Configuration For Assignments Uploads
Automating Configuration For Assignments Uploads is an upgrade to old assignment configuration. Previously all inputs and outputs file was to be provided at time of configuration of assignment this made input and output constant for every submission. After this project we can add random inputs and corresponding output at the time of submission.This is possible by providing an instructor solution and python script which can generate random inputs. We can also generate only outputs from predefined inputs at the time of building gradeable. This can be used to remove dependencies on predefined output.
I am Drumil Patel an undergraduate Electrical Engineer from Indian Institute of Technology, Roorkee.
This project was mentored by Barbara Cutler, Evan Maicus.
Contributions
I contributed in various part of Submitty varying from discussion forum to Automating configuration.
1. Automating Configuration
This was my main project with which I integrated random inputs and outputs for assignment.
- [Feature:Autograding] solution to generate expected output
- This PR added feature to generate output for non random inputs at time of building gradeable. This decreases time of grading as output are generated before time of grading.
- [BUGFIX:Tests] Validate solution_containers in complete_config json
- PR 4151 broke some testcases this PR retain all testcases
- [Feature:Autograding] Randomized input and generated output
- This was main PR which is responsible for randomized input and output. Randomized input can be generated by providing Python script which will randomized input and save it in random_input. Then after randomized output was generated using instructor_solution provided by instructor at time of configuration of assignments.
-
new test_ouput and solution folder in TMP_WORK
- This PR was a refactor to old design of assignment infrastructure. Previously test_output was at root level. This added two new folders solution and test_output. Solution folder consist of solution provided by instructor which help in generation of output from inputs(both random and test input)
2. VPAT Issues
I solved many VPAT issues in beginning of my contribution period. This help me to recognize importance and different aspect of Accessibility. I want to thank Peter Bailie for helping and reviewing my PRs on VPAT issues. This are my PRs on some VPAT issues :-
- [Bugfix] Fix deleted posts not having gray background
- Resubmit “[VPAT] html tables are commented and data tables are given th…
- [Bugfix] VPAT – Javascript Jump menu alert
- Customizable theme using layout tables
- Radio Button Grouping
- Contrast Error in Global footer view
- Remove redundant link in sidebar
- Change contrast and remove inline css in navigation button
3. Grade Override
This series of PRs was meant to solve #2982. This added a feature through which we can override grades in gradeable with a very simple GUI.
4. Discussion Forum
This is the list on my contribution in discussion forum side of the Submitty. It includes some minor Bugfixes with some new features.
- [Feature] TA/Instructor can lock Thread
- [FEATURE]Chronologically Descending Sorting option
- [BUGFIX]Fix unhandled exception when no thread in discussion forum
- [Bugfix] Trim spaces in forum thread titles
- [BUGFIX] Fix size of textarea when editing post
- [Bugfix]Aligning select color tag in ‘Edit categories’
5. Small Bugfixes
This are the list of bugfixes in different places in Submitty.
- Remove raw in course setting page
- [Refactor] Replace deprecated {\% for … if … \%} with filter in twig
- [Bugfix] Validating URL for course home page
- [Bugfix] Stop fading of error messages
- [Bugfix]Changing late days to default late days
- [BUGFIX] Improve student validation for late days allowed
- Aligning submission selection form using flex
- [BUGFIX] Highlighting checkbox label on focus
- [BUGFIX] Fix size of textarea when editing post
- Add shortcut(KeyD) for discussion panel in grading portal
- Fix css of button for regrade request
- Removing extra space in grading discussion portal
- Apply trim to frontend and backend in Authentication
- Add stoplight legends to grade details page
- Error Handling on Login Page
Future Scope of Work
Presently Assignment Autograding can generate both random inputs and outputs with option of generating non random output at time of build of gradeables.But there is some room for improvement inorder to enhance the functionality:-
-
Presently we can only generate output and input using only python scripts. Ideally assignment should generate output and input using every programming language.
-
Tests for random inputs and output should be added to check if something has not broke random inputs and outputs
Acknowledgments
I had an overwhelming summer contributing in Submitty through Google Summer of Code. I am really obliged and thankful to Barbara Cutler and Evan Maicus for mentoring me throughout the course of program. I am really thankful to Peter Bailie, Matthew Peveler, Shail Patel and all other student at RPI working in RCOS and GSoC.
Submitty has playe a crucial role in developing my interset in open source world. Every time I will think about open source Submitty will be first word which will come in my mind.