From 759c98c4a295c12aa7cc8b81ebb2c9a05180d901 Mon Sep 17 00:00:00 2001 From: Ansh Jindal Date: Wed, 12 Aug 2026 21:33:49 +0530 Subject: [PATCH 1/6] initial commit --- _docs/developer/google_summer_of_code/2026_Ansh_Jindal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md index 13411db7..85937081 100644 --- a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md +++ b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md @@ -3,4 +3,4 @@ title: Ansh Jindal category: Developer > Google Summer of Code 2026 --- -coming soon \ No newline at end of file +coming soon \ No newline at end of file From 793eb5fe0e468f72e0273a1326376d6b541e84ad Mon Sep 17 00:00:00 2001 From: Ansh Jindal Date: Wed, 12 Aug 2026 23:24:10 +0530 Subject: [PATCH 2/6] initial commit --- _docs/developer/google_summer_of_code/2026_Ansh_Jindal.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md index 85937081..57125279 100644 --- a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md +++ b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md @@ -3,4 +3,6 @@ title: Ansh Jindal category: Developer > Google Summer of Code 2026 --- -coming soon \ No newline at end of file +coming soon + +JNDLANSH \ No newline at end of file From ed9db455eb49360384792396e7a64ecb5df4a65f Mon Sep 17 00:00:00 2001 From: Ansh Jindal Date: Sat, 15 Aug 2026 21:29:24 +0530 Subject: [PATCH 3/6] initial changes --- .../google_summer_of_code/2026_Ansh_Jindal.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md index 57125279..170e6de6 100644 --- a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md +++ b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md @@ -3,6 +3,21 @@ title: Ansh Jindal category: Developer > Google Summer of Code 2026 --- -coming soon +# [Interactive User Interfaces With Vue.js — Submitty]() -JNDLANSH \ No newline at end of file +## At a Glance + +- [**26**](https://github.com/Submitty/Submitty/pulls?q=is%3Apr+is%3Amerged+author%3Ajndlansh) PRs merged into production · [**18**](https://github.com/Submitty/Submitty/pulls?q=is%3Apr+commenter%3Ajndlansh+-author%3Ajndlansh+is%3Aclosed) reviewed for teammates · [**1**](https://github.com/Submitty/Submitty/pull/12659) taken over from other devs +- Stack: Vue.js, PHP, Cypress, Twig, TypeScript, JavaScript, Oracle Virtual Box, Vagrant +- Shipped: Designed and built an architecture upon which the entire codebase will be migrated to Vue.js from jQuery and Twig +- [Full commit history]() · [All merged PRs]() + +## Overview + +Migrated Submitty's frontend from jQuery + Twig to Vue.js, restructuring logic scattered across dozens of files into self-contained single-file components. Rather than a risky full frontend rewrite, I designed a component-by-component migration path that let the legacy and Vue systems coexist safely in production throughout the transition. To guarantee each migrated component behaved correctly before merge, I introduced Cypress component testing as part of the migration workflow — giving the team a repeatable safety net for every future component, not just mine. + +## About Me + +Hello! My name is Ansh Jindal, persuing my Engineering in Information Technology at College of Technology, Pantnagar + +--- \ No newline at end of file From 61c92c1e4a4088c1725b4d89aec41e4d03804ea5 Mon Sep 17 00:00:00 2001 From: Ansh Jindal Date: Sun, 16 Aug 2026 00:17:35 +0530 Subject: [PATCH 4/6] 3rd commit --- _docs/developer/google_summer_of_code/2026_Ansh_Jindal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md index 170e6de6..fb1bda05 100644 --- a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md +++ b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md @@ -18,6 +18,6 @@ Migrated Submitty's frontend from jQuery + Twig to Vue.js, restructuring logic s ## About Me -Hello! My name is Ansh Jindal, persuing my Engineering in Information Technology at College of Technology, Pantnagar +Hello! My name is Ansh Jindal, pursuing B.Tech in Information Technology at College of Technology, Pantnagar. The Submitty community was hyperactive and rewarding - that is what kept me contributing well past my initial PRs --- \ No newline at end of file From 7ecf52c40041b45467b58c1c9bbfba72f977995e Mon Sep 17 00:00:00 2001 From: Ansh Jindal Date: Mon, 17 Aug 2026 18:12:15 +0530 Subject: [PATCH 5/6] next commit --- .../google_summer_of_code/2026_Ansh_Jindal.md | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md index fb1bda05..2e8670f1 100644 --- a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md +++ b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md @@ -20,4 +20,38 @@ Migrated Submitty's frontend from jQuery + Twig to Vue.js, restructuring logic s Hello! My name is Ansh Jindal, pursuing B.Tech in Information Technology at College of Technology, Pantnagar. The Submitty community was hyperactive and rewarding - that is what kept me contributing well past my initial PRs ---- \ No newline at end of file +--- + +## Primary Contributions + +### Vue component re-render (Migrate ReceivedMarkForm to Vue) + +**[PR #12910](https://github.com/Submitty/Submitty/pull/12910)** — This PR introduced the re-render of a Vue component without unmount and remount. Saves stale copies of a Vue app and prevents memory leaks. + + +**Stack:** Vue.js, twig, TypeScript, Cypress · **Status:** Merged + +### Migrate PanelSelectorModal to Vue in TAGrading + +**[PR #12901](https://github.com/Submitty/Submitty/pull/12901)** — In this PR, I refactored the PanelPositionSelector to work in sync with the Parent Vue component and remove all the junk files that previously made the component work. + +**Stack:** Vue.js, twig, TypeScript, Cypress · **Status:** Merged + +## Infrastructure & Tooling + +### Cypress component testing for Vue +**[PR #12836](https://github.com/Submitty/Submitty/pull/12836)** — This PR introduces cypress component testing in the Submitty Codebase + +**Stack:** YML, TypeScript, Cypress, HTML, JSON · **Status:** Merged + +### Code coverage for Component tests +**[PR #12959](https://github.com/Submitty/Submitty/pull/12959)** — This PR adds code coverage for Cypress Component Tests · Enables coverage in CI · Uploads the reports to Codecov · Adds a dedicated cypress-component Codecov flag · Surfaces the coverage directly in the PR comment + +**Stack:** YML, JavaScript, TypeScript, JSON · **Status:** Merged + +### Events mapping infrastructure for Vue migration +**[PR #12959](https://github.com/Submitty/Submitty/pull/12959)** — I designed a component-by-component migration setup for Vue components + +**Stack:** YML, JavaScript, TypeScript, JSON · **Status:** Merged + +--- \ No newline at end of file From 46e66f43a85dacda34097bd89c640970b4357441 Mon Sep 17 00:00:00 2001 From: Ansh Jindal Date: Tue, 18 Aug 2026 11:13:59 +0530 Subject: [PATCH 6/6] next commit --- .../google_summer_of_code/2026_Ansh_Jindal.md | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md index 2e8670f1..1b05012e 100644 --- a/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md +++ b/_docs/developer/google_summer_of_code/2026_Ansh_Jindal.md @@ -8,7 +8,7 @@ category: Developer > Google Summer of Code 2026 ## At a Glance - [**26**](https://github.com/Submitty/Submitty/pulls?q=is%3Apr+is%3Amerged+author%3Ajndlansh) PRs merged into production · [**18**](https://github.com/Submitty/Submitty/pulls?q=is%3Apr+commenter%3Ajndlansh+-author%3Ajndlansh+is%3Aclosed) reviewed for teammates · [**1**](https://github.com/Submitty/Submitty/pull/12659) taken over from other devs -- Stack: Vue.js, PHP, Cypress, Twig, TypeScript, JavaScript, Oracle Virtual Box, Vagrant +- Stack: Vue.js, TypeScript, JavaScript, Twig, Cypress, PHP, Oracle Virtual Box, Vagrant - Shipped: Designed and built an architecture upon which the entire codebase will be migrated to Vue.js from jQuery and Twig - [Full commit history]() · [All merged PRs]() @@ -54,4 +54,43 @@ Hello! My name is Ansh Jindal, pursuing B.Tech in Information Technology at Coll **Stack:** YML, JavaScript, TypeScript, JSON · **Status:** Merged ---- \ No newline at end of file +--- + +## Other PRs + +- [TA Grading Refactors](https://github.com/Submitty/Submitty/pulls?q=is%3Apr+author%3Ajndlansh+is%3Aclosed+in%3Atitle+%22%5BRefactor%3ATAGrading%5D%22) +- [Discussion Forum Refactors](https://github.com/Submitty/Submitty/pulls?q=is%3Apr+author%3Ajndlansh+is%3Aclosed+in%3Atitle+%22%5BRefactor%3AForum%5D%22+) + +[Full list of merged PRs →](https://github.com/Submitty/Submitty/pulls?q=is%3Apr+author%3Ajndlansh+is%3Amerged) + +## Code Reviews & Community Impact + +Reviewed **[18 Pull Requests](https://github.com/Submitty/Submitty/pulls?q=is%3Apr+commenter%3Ajndlansh+-author%3Ajndlansh+is%3Aclosed)** from other contributors, Reviewing others' code was an invaluable experience as it accelerated my understanding of Submitty's massive architecture and allowed me to help shape the quality of the project. + +## Documentation + +- [](link) + +--- + +## Reflection + +The hardest part of the summer wasn't writing Vue components — it was designing a migration architecture that other developers, including ones who'd never touch my code, could reuse without understanding my full mental model. Every decision had to be reproducible: could the next contributor apply this pattern to their component without asking me first? With guidance from my mentors, I landed on an approach that's now migrated 30 components and is structured to scale to the rest of Submitty's codebase. That shift — from "does my code work" to "will this pattern hold up when someone else uses it" — was the biggest jump in how I think about engineering this summer. + +## Thanks + +- **[Justin Manion](https://github.com/JManion32):** Helped me scope the project correctly when it started pulling in more directions than one summer could cover, and kept pushing for production-quality code over quick fixes.. +- **[William J Allen](https://github.com/williamjallen):** Reviewed and pressure-tested the migration architecture design with me. The reusable pattern only works because he caught the edge cases I'd missed early on. +- **[Barbara Cutler](https://github.com/bmcutler):** Unblocked me on Submitty's broader architectural decisions and gave context on why certain legacy patterns existed, which shaped how I approached the migration. + +## What's Next + +- **Mentor new developers** – Having felt the challenge of learning Submitty's large codebase as a newcomer myself, I want to help new contributors ramp up faster than I did. +- **Complete the TA Grading Module migration to Vue.js** – it's Submitty's most heavily used interface, so migrating it fully would deliver the biggest reliability and maintainability payoff of any remaining module. +- **Explore WebSockets** – the discussion forum needs real-time updates, and the current setup can't do that yet. + +## Contact + +- **Email:** +- **LinkedIn:** [Ansh Jindal](https://www.linkedin.com/in/ansh-jindal-b9201a28b/) +- **GitHub:** [jndlansh](https://github.com/jndlansh) \ No newline at end of file