Saurabh taking over for Saicharan - Implement Project Status Donut Chart (Frontend)#4040
Saurabh taking over for Saicharan - Implement Project Status Donut Chart (Frontend)#4040Saicharan1505 wants to merge 27 commits into
Conversation
❌ Deploy Preview for highestgoodnetwork-dev failed.
|
Prem203
left a comment
There was a problem hiding this comment.
I have tested the PR with an admin account.
The chart is displayed correctly with the data visible on hover and it matched with the data shown on the side. Although there are several factors which needs to be handled.
- On changing to dark mode there is no visible change to the component.
- The date filter allows end date before start date and it does not throw any error messages. The chart vanishes on this instant and the values on the right also reflect the previous value instead of responsible error message.
b68d843 to
265d805
Compare
- Removed package-lock.json to avoid conflicts - Updated yarn.lock to resolve Windows-specific package issues - Fixed platform compatibility for Linux/macOS CI environments
- Add --ignore-platform flag to yarn install commands in all workflows - Fixes Windows-specific package installation errors on Linux CI environment - Resolves @rollup/rollup-win32-x64-msvc platform incompatibility issues
- Add secure token retrieval with error handling - Improve error messages and user feedback - Add loading and error states with retry functionality - Enhance service error handling with proper token validation - Fix SonarCloud security hotspot and reliability issues - Reduce code duplication by improving error handling patterns
Aswin20010
left a comment
There was a problem hiding this comment.
Reviewed PR #4040+1709 (Project Status Donut Chart Visualization). Verified proper integration with backend and correct rendering of the donut chart with Active, Completed, and Delayed project segments. Confirmed hover tooltips display accurate counts and percentages, and total project count appears at the chart center. Tested From/To date filters for functional accuracy and verified numeric data alignment in the right-side panel. Checked CSS module styling consistency and responsiveness. No functional or UI regressions found — approved the PR.
roshini1212
left a comment
There was a problem hiding this comment.
Tested this PR, all core functionality works perfectly at http://localhost:5173/projectstatus: the donut chart renders Active/Completed/Delayed segments correctly, From/To date filters function properly, hover tooltips display accurate counts and percentages, total projects count appears at the chart center, and the right-side panel shows correct category numbers.
However, there's one minor issue in dark mode where the date picker text becomes invisible (white-on-white contrast problem).
|
Hi @vamsidharpanithi |
|
|
Resolved merge conflicts and tested locally. Please verify Screen.Recording.2026-03-02.at.10.32.27.PM.mov |
| setPending(true); | ||
| setError(''); | ||
| try { | ||
| const token = getToken(); |
There was a problem hiding this comment.
In token retrieval add authorization header.
Anusha-Gali
left a comment
There was a problem hiding this comment.
Hi Juhitha,
I re-reviewed your PR locally, thanks for fixing the calendar issue however the hover and tooltip appears to be broken. There is no tooltip being displayed and when i hover on two of the three status the chart freezes.
4040.mp4
| // Secure token retrieval with error handling | ||
| const getToken = () => { | ||
| try { | ||
| return localStorage.getItem('token') || null; |
There was a problem hiding this comment.
Token retrieval should be handled by the API service layer or read from Redux state, not accessed directly in a component. The token is re-read on every load call rather than being reactive to auth state changes.
| <div className={styles.leftSection}> | ||
| {/* Header + Filters */} | ||
| <div className={styles.header}> | ||
| <div className={styles.title}>PROJECT STATUS</div> |
There was a problem hiding this comment.
The same title is shown both above the component and inside the chart itself, which is redundant.
|
I tested this locally with the frontend PR against the linked backend PR (#1709). The page renders and the date filter updates the right-side counts correctly. For 2025-01-01 to 2025-12-31, the UI showed '345 / 113 / 17', which matched the API response. One issue still needs to be fixed before merge:
Also, the backend is currently calculating 'delayedProjects' from inactive non-archived projects (isActive === false && !isArchived). If the intended metric is truly 'Delayed' rather than 'Inactive', that aggregation/label should be aligned.
|
|
rajanidi1999
left a comment
There was a problem hiding this comment.
Hi,
Your UI looks clean and structured, but there are a few issues worth addressing. The main problem is the failed data fetch state—right now it only shows a generic error message, so it would be better to include more context (e.g., network error vs. no data) and possibly auto-retry or logging for debugging. The date filters are clear, but they should have validation (like preventing invalid ranges) and maybe default values to improve UX. The stats panel on the right is neat, though showing all zeros without explanation can feel confusing—consider a placeholder or tooltip. Also, ensure loading states (spinners/skeletons) are visible before the error appears. Overall, solid layout, but improving error handling, feedback, and edge-case UX will make it much more robust.
kunchalasireesha
left a comment
There was a problem hiding this comment.
Hi Shreya, it looks like this PR currently has merge conflicts with the base branch. Could you please rebase or merge the latest changes from development into your branch and resolve the conflicts? Once the build passes, I’ll finish the review.
amaresh2001
left a comment
There was a problem hiding this comment.
Tested locally on branch: feature/project-status-donut-frontend with backend on feature/project-status-donut-backend
Testing:
- Donut chart renders correctly with Active (Purple), Completed (Teal), and Delayed (Orange) segments
- Total Projects count displays correctly in the chart center
- Right-side panel shows correct Active/Completed/Delayed counts
- From/To date filters update the chart correctly
- Hover tooltips show segment counts and percentages
- Today's date displays below the chart
Issue:
In dark mode, the From Date and To Date input fields have a white background, but the selected date text is not visible; the text color blends into the white background, making entered dates unreadable.
This PR has active merge conflicts that must be resolved before merging.
the selected dates are not visible in the fields in dark mode:

|
handikaharianto
left a comment
There was a problem hiding this comment.
Hi @Saicharan1505 , when I tried to review this PR, I received the following error message on the frontend side.

Furthermore, I also received more error messages in the command line.

Please resolve this issue.












Description
Implements Phase 2 Summary Dashboard: Project Status Donut Chart (Frontend).
This feature adds a donut chart visualization with Active, Completed, and Delayed projects, supporting date filters and tooltips.
Implements # (Phase 2 Action Item)
Related PRS (if any):
This frontend PR is related to the #1709 backend PR.
To test this PR you need to checkout the #1709 backend PR.
Main changes explained:
ProjectStatus.jsxcomponent for donut chart visualization.react-datepicker.projectStatusService.js.How to test:
Check into this branch:
git fetch origin feature/project-status-donut-frontendgit checkout feature/project-status-donut-frontendnpm installandnpm run start:local.http://localhost:5173/projectstatus.Screenshots or videos of changes: