Skip to content

Commit 3c7289f

Browse files
authored
Merge branch 'main' into ansh-summer-report
2 parents c7bf131 + bf9d106 commit 3c7289f

2 files changed

Lines changed: 98 additions & 6 deletions

File tree

‎_docs/developer/google_summer_of_code/2026_Garvit_Khandelwal.md‎

Lines changed: 87 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,90 @@ title: Garvit Khandelwal
33
category: Developer > Google Summer of Code 2026
44
---
55

6-
coming soon
6+
# [AI/ML to Enhance and Streamline Manual/TA Grading](https://summerofcode.withgoogle.com/programs/2026/projects/e3YU9deG)
7+
8+
## Overview
9+
10+
The primary objective of my GSoC 2026 project was to enhance the manual TA grading experience by integrating AI/ML clustering algorithms. By intelligently clustering students with similar submissions together, TAs can now evaluate entire groups simultaneously, drastically reducing the time spent on manual grading.
11+
12+
While this might initially sound like a purely AI/ML-focused project, the reality was much broader. Because this was a completely novel feature for Submitty, the majority of my time was spent designing and implementing the full-stack architecture from the ground up.
13+
14+
Throughout the project, several significant architectural and design hurdles had to be overcome:
15+
- **Fairness and Transparency:** We had to strike a delicate balance between providing the efficiency of AI clustering while guaranteeing that TAs retain complete, final control over the grading process.
16+
- **Global vs. Per-TA Clustering:** We had to decide whether clustering should be global (one method per gradeable) or per-TA (each TA creates their own clusters). Per-TA clustering introduced severe implementation challenges, so we strategically opted for a global clustering approach.
17+
- **Submission Version Conflicts:** We had to account for edge cases where a student changes their active submission version after a cluster has already been created. This voids the basis on which the student was originally clustered and presented a highly specific edge case new to Submitty.
18+
19+
## About Me
20+
Hello! I am a computer science undergraduate student at the Indian Institute of Technology, Mandi. Before GSoC, I honestly did not have any prior open-source contributions, so this program was my true starting point. The main reason I chose to work with Submitty was because I really liked the project, and the community was highly active and rewarding.
21+
22+
## Primary Contributions & Features
23+
24+
- **[Backend for submission clustering](https://github.com/Submitty/Submitty/pull/12886)**
25+
- **Description:** The foundation of the project involved setting up the essential database architecture. This PR establishes a normalized database schema and introduces the necessary backend API endpoints to support clustering.
26+
- **Technical Highlights:** PHP, Doctrine ORM, PostgreSQL
27+
28+
- **[Add submission clustering daemon](https://github.com/Submitty/Submitty/pull/13004)**
29+
- **Description:** Running complex Python machine learning algorithms synchronously would block the UI and severely degrade the user experience. To solve this, this PR sets up a background daemon infrastructure.
30+
- **Technical Highlights:** Python, Daemon Infrastructure
31+
32+
- **[UI for clustering & table grouping](https://github.com/Submitty/Submitty/pull/12966)**
33+
- **Description:** With the backend infrastructure in place, the next step was visualizing the clustered students. This PR introduces a "Create Cluster" modal where users can select their desired clustering algorithm. It also implements a "Group by Clusters" filter, displaying students in a tabular format native to Submitty's design. Notably, as Submitty is migrating to Vue.js, this was the very first feature built entirely using Vue.
34+
- **Technical Highlights:** Vue.js, PHP, Twig, Cypress
35+
36+
- **[Single Cluster](https://github.com/Submitty/Submitty/pull/13161)**
37+
- **Description:** This PR introduces a new algorithm which returns only a single cluster containing all valid submitters. This was built for cases like to assign bonus marks to all the active submitters.
38+
- **Technical Highlights:** Python
39+
40+
- **[Cluster Grading](https://github.com/Submitty/Submitty/pull/13103)**
41+
- **Description:** This PR bridges the gap between clustering students and actually helping TAs grade faster. It integrates the core functionality into the TA Grading (Rubric) page. I added intuitive UI toggle icons allowing TAs to seamlessly switch in and out of "Clustering Mode". When active, grading one student automatically applies that grade to the entire cluster. A major UI/UX challenge here was designing clear visual cues so TAs remain fully aware of the sweeping impact of their actions.
42+
- **Technical Highlights:** Vue.js, PHP, Twig, Cypress
43+
44+
- **[Adding container for running custom algorithm](https://github.com/Submitty/DockerImages/pull/76)**
45+
- **Description:** To support advanced customization, this PR introduces a dedicated Docker container pre-installed with popular machine learning libraries.
46+
- **Technical Highlights:** Docker
47+
48+
- **[Custom Algorithm](https://github.com/Submitty/Submitty/pull/13176)**
49+
- **Description:** While predefined clustering algorithms are useful, every gradeable is unique, making it impossible to predict every grading scenario. This feature empowers instructors/TAs to upload custom Python scripts to define their own clustering logic.
50+
- **Technical Highlights:** Vue.js, PHP, Docker
51+
52+
## Other PRs
53+
54+
Throughout the summer, I contributed to various other areas of the codebase, handling critical infrastructure issues, bug fixes, and performance optimizations. While a few major ones are highlighted below, a [complete list of my Pull Requests can be found here](https://github.com/Submitty/Submitty/pulls?q=is%3Apr+author%3AGarvitKhandelwal31+is%3Aclosed).
55+
56+
- [[Refactor:Autograding] Optimize PDF Redaction](https://github.com/Submitty/Submitty/pull/12471): Refactored the time required for PDF redactions by up to 2x.
57+
- [[Bugfix:TAGrading] Fix PDF Header Overlap](https://github.com/Submitty/Submitty/pull/12793): Fixed a UI issue where the grading page header obscured the title of student-uploaded PDF files, significantly improving TA visibility and usability during grading.
58+
- [[Bugfix:TAGrading] Fix Grade Override Logic](https://github.com/Submitty/Submitty/pull/12651): Resolved underlying logic bugs within the manual grade override system.
59+
- [[Feature:RainbowGrades] Manual Upload Warning Banner](https://github.com/Submitty/Submitty/pull/12645): Added a warning banner that displays when users manually upload rainbow grades to prevent accidental data overrides.
60+
- [[UI/UX:Forum] Forum UI Enhancements](https://github.com/Submitty/Submitty/pull/12622): Implemented several major UI improvements to enhance the user experience on the Submitty discussion forums page.
61+
62+
## Code Reviews & Community Impact
63+
64+
Beyond authoring code, I actively dedicated a significant portion of my time to reviewing Pull Requests from across the entire codebase. Reviewing others' code was an invaluable experience; it rapidly accelerated my understanding of Submitty's massive architecture and allowed me to help shape the quality of the project.
65+
66+
Thanks to Submitty's highly collaborative culture, I successfully reviewed a total of **[54 Pull Requests](https://github.com/Submitty/Submitty/pulls?q=is%3Apr+commenter%3AGarvitKhandelwal31+-author%3AGarvitKhandelwal31+is%3Aclosed)** throughout my GSoC journey, actively participating in architectural discussions and ensuring high coding standards.
67+
68+
## Work In Progress / Future Scope
69+
70+
There are still exciting enhancements left to build on top of this foundation. I have listed several tracking issues for the remaining features:
71+
72+
- [Delete Clusters](https://github.com/Submitty/Submitty/issues/13148)
73+
- [Rename Clusters](https://github.com/Submitty/Submitty/issues/13147)
74+
- [Visualize Clustering Data](https://github.com/Submitty/Submitty/issues/13116)
75+
- [UI error/message for cluster-grading conflicts](https://github.com/Submitty/Submitty/issues/13184)
76+
- [Add "Prev/Next Cluster" option to TA Grading navigation settings](https://github.com/Submitty/Submitty/issues/13185)
77+
78+
## Reflection
79+
80+
Working on such a massive codebase and implementing a feature of this scale from scratch was an extraordinary experience. Throughout this journey, I upskilled significantly, mastering new technologies and learning how to architect complex, full-stack systems. As I mark the end of my GSoC project, I would like to express my deepest gratitude to my mentors:
81+
82+
- **[William J Allen](https://github.com/williamjallen):** Beyond all the technical help, I am incredibly grateful for the deep architectural insights and software engineering best practices I learned from him along the way. His brilliant code reviews, extraordinary ideas, and structural guidance on how to build a feature of this scale were truly invaluable.
83+
- **[Professor Barbara Cutler](https://github.com/bmcutler):** Barb held daily meetings, which made iterating on ideas incredibly fast. Her suggestions and perspectives fundamentally improved this feature. The most essential lesson I learned from her was how to truly think from the perspective of the end user.
84+
85+
I would also like to thank the fellow GSoC & RPI contributors. It was a great experience collaborating with you all!
86+
Finally, I am deeply grateful for this incredible opportunity. Thank you!
87+
88+
## Contact Me
89+
90+
If you have any questions or want to discuss this project further, feel free to reach out to me!
91+
- **Email:** [garvitkk2006@gmail.com](mailto:garvitkk2006@gmail.com)
92+
- **LinkedIn:** [Garvit Khandelwal](https://www.linkedin.com/in/garvit-khandelwal-894a81350/)

‎_docs/sysadmin/installation/update_submitty.md‎

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ redirect_from:
88

99

1010
**IMPORTANT NOTE: If your system was initially installed prior to
11-
early June 2018, please start with the section at the bottom of this
12-
page.**
11+
early June 2018, please start [with the section at the bottom of this
12+
page](#installations-prior-to-early-june-2018).**
1313

1414

1515
Please also see [Update GNU/Linux Server](update_server) and [Installation Version Notes](version_notes).
@@ -18,14 +18,20 @@ Please also see [Update GNU/Linux Server](update_server) and [Installation Versi
1818
### Update Submitty Software to the latest Release
1919

2020
1. To update the Submitty source code repository, get the specific
21-
branch/release to which you want to upgrade. For example:
21+
branch/release to which you want to upgrade. For example, to update to the latest development version:
2222

2323
```
2424
cd /usr/local/submitty/GIT_CHECKOUT/Submitty
25-
git checkout master
26-
git pull origin master
25+
git checkout main
26+
git pull origin main
2727
```
2828
29+
Whereas to update to the latest release (changing `XX.yy.zz` for the right release tag):
30+
```
31+
git fetch origin --tags
32+
git switch --detach vXX.yy.zz
33+
```
34+
2935
3036
2. Then re-install the Submitty source code.
3137

0 commit comments

Comments
 (0)