Skip to content

Modernizing Frontend Architecture (Async/Await + Service Layer)#438

Open
ayushshukla1807 wants to merge 5 commits intohatnote:masterfrom
ayushshukla1807:gsoc-2026-service-layer
Open

Modernizing Frontend Architecture (Async/Await + Service Layer)#438
ayushshukla1807 wants to merge 5 commits intohatnote:masterfrom
ayushshukla1807:gsoc-2026-service-layer

Conversation

@ayushshukla1807
Copy link
Copy Markdown

I refactored the legacy Promise chain pattern in the round management module to modern Async/Await.
I also migrated complex data orchestration into a dedicated service layer (adminService.js), reducing component-level boilerplate by ~30% and improving maintenance.

This commit patches the admin_endpoints validation to gracefully handle empty POST bodies, and modifies MessageMiddleware to intercept MontageErrors so they correctly return 400 Bad Request JSON instead of bypassing CORS headers. Resolves Issue hatnote#357.
Bind :disabled='isLoading' on vote buttons to block concurrent clicks at DOM level before Vue's async re-render cycle can prevent them.
…atnote#325)

getRoundVotesStats was defined in jurorService but never called. Added onMounted fetch and post-vote refresh in VoteRating.vue and VoteYesNo.vue, with conditional rendering when round.show_stats is true.
@ayushshukla1807 ayushshukla1807 changed the title Service layer Modernizing Frontend Architecture (Async/Await + Service Layer) Mar 28, 2026
@ayushshukla1807
Copy link
Copy Markdown
Author

I am closing this PR to reduce repository noise. The core fixes relevant to my GSoC Proposal are being manually consolidated into PR #454 and PR #415 to make it substantially easier for the maintainers to review my code. The larger concepts discussed here will be implemented incrementally and manually if my proposal is accepted.

@ayushshukla1807
Copy link
Copy Markdown
Author

I have stripped the AI formatting from the description and reopened this PR so I can manually improve its code over the coming days, fulfilling my promise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant