167 23 16 7 5 1 ankit kumar yadav - #340
Open
ankit18193 wants to merge 7 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Qualification Assignment Submission
Summary
This pull request completes all assigned qualification tasks for my branch:
167-23-16-7-5-1-ankit-kumar-yadavThe implementation focuses on improving the application's security, backend data integrity, frontend user experience, and overall Talent Portal usability.
The completed work includes fixing critical backend bugs, resolving an authorization vulnerability, implementing reusable loading-state handling for important user actions, simulating assignment notifications, and redesigning the Talent Dashboard with dedicated task management pages.
Issues Closed
Closes #1
Closes #5
Closes #7
Closes #16
Closes #23
Closes #167
Detailed Changes
🐞 Issue #1 — Successive Task Submissions Overwrite Previous Data
Problem
Previously, every new submission for the same task overwrote the previous submission record. As a result:
Solution
Updated the submission flow to create a new submission document for every submission instead of updating an existing one.
Result
🐞 Issue #5 — Task Deletion Leaves Orphaned Records
Problem
Deleting a task removed only the task document while leaving related submission documents in the database.
This caused orphaned records and inconsistent data.
Solution
Before deleting a task:
Result
🔒 Issue #7 — IDOR Vulnerability in Task Details API
Problem
The submission endpoint allowed unauthorized users to access task submission information by changing the Task ID.
This created an Insecure Direct Object Reference (IDOR) vulnerability.
Solution
Implemented ownership validation by:
Result
⏳ Issue #16 — Missing Loading Indicators on Critical Actions
Problem
Critical user actions provided no visual feedback while waiting for server responses.
Affected flows:
Users could click multiple times, creating duplicate requests.
Solution
Implemented reusable loading state management across all critical actions.
Added:
withMinimumDelay()helperThe helper guarantees a smooth minimum loading duration to avoid flashing UI on fast network responses.
Result
✨ Issue #23 — Simulate Assignment Notifications
Problem
Task assignment events produced no notification feedback.
Solution
Created a reusable notification utility that simulates assignment notifications through console output.
Notifications are triggered:
Duplicate notifications are avoided when the assignee does not change.
Result
🎨 Issue #167 — Talent Dashboard & Active Tasks Overhaul
Problem
The Talent Portal contained several usability issues:
Solution
Implemented a complete frontend overhaul including:
TaskCardcomponentResult
Testing Performed
The following functionality was manually verified.
Issue #1
Issue #5
Issue #7
Issue #16
Verified:
Issue #23
Verified:
Issue #167
Verified:
Screenshots
🎨 Issue #167 — Talent Dashboard & Active Tasks Overhaul
Dashboard Overview
Demonstrates the redesigned Talent Dashboard featuring the updated layout, statistics section, reusable task cards, and improved navigation experience.
My Tasks Page
Shows the newly introduced My Tasks page where assigned tasks are displayed with filtering, searching, and sorting capabilities.
Browse Tasks Page
Displays the new Browse Tasks page that allows talents to discover and claim available tasks through a dedicated interface.
⏳ Issue #16 — Loading Indicators on Critical Actions
Login Loading State
Shows the Sign In button entering the loading state, disabling further interaction and displaying visual feedback while authentication is in progress.
Registration Loading State
Shows the Setup Profile button displaying its loading state while preventing duplicate registration requests.
Submit Task Loading State
Shows the Submit Task modal during submission where all interactive controls are disabled until the request completes.
✨ Issue #23 — Assignment Notification Simulation
Assignment Notification Output
Demonstrates the simulated assignment notification generated in the server console when a task is assigned or reassigned.
🗑️ Issue #5 — Orphaned Submission Cleanup
Task Deletion Verification
Shows that deleting a task also removes all related submissions, preventing orphaned records in the database.
📚 Issue #1 — Multiple Submission History
Successive Submission Verification
Demonstrates that each task submission is stored as a separate document, preserving complete submission history instead of overwriting previous records.
🔒 Issue #7 — IDOR Protection
Authorized Access
Shows that the assigned talent can successfully access and submit their own task.
Unauthorized Access Prevention
Demonstrates that unauthorized users cannot access or submit tasks that are not assigned to them, confirming the IDOR vulnerability has been resolved.
Build & Verification Checklist
cd client && npm run lintcd client && npm run buildcd server && npm run lintcd server && npm run buildDemo Video
A complete walkthrough demonstrating all implemented features:
Google Drive Link
Contribution Checklist
167-23-16-7-5-1-ankit-kumar-yadavmasterbranch before creating the PR.Additional Notes
The implementation prioritizes:
Where possible, reusable utilities and shared components were introduced to minimize code duplication and simplify future enhancements.