Skip to content

feat(analytics): scan comparison mode for side-by-side evaluation (#7)#164

Open
saidai-bhuvanesh wants to merge 8 commits into
jpdevhub:mainfrom
saidai-bhuvanesh:feat/scan-comparison
Open

feat(analytics): scan comparison mode for side-by-side evaluation (#7)#164
saidai-bhuvanesh wants to merge 8 commits into
jpdevhub:mainfrom
saidai-bhuvanesh:feat/scan-comparison

Conversation

@saidai-bhuvanesh

@saidai-bhuvanesh saidai-bhuvanesh commented Jul 3, 2026

Copy link
Copy Markdown

🔗 Upstream Issue Connection

Closes #163

This Pull Request is officially linked to and resolves Issue #163 (Feature 7: Scan Comparison Mode for Side-by-Side Analysis) in the upstream repository.

Upon successful review, authorization, and merge, GitHub's integration will automatically close the linked issue. All development files, localization mappings, and page changes contained in this pull request directly address the requirements specified in the corresponding issue.


What changes are made?

  1. Toglable Compare Mode (src/pages/ResultsPage.tsx): Added a comparison mode toggle button to the Results/History page headers.
  2. Interactive Selection Checklist: When Comparison Mode is active, clicking a scan item toggles its checkbox selection instead of navigating immediately.
  3. Pulsing Neon Float Bar: Built a floating trigger bar that slides up from the viewport bottom when scans are selected, prompting the user to select exactly 2 scans.
  4. Side-by-Side Comparison Overlay Modal: Clicking "COMPARE NOW" fetches full biomarker data for both selected scans using Promise.all and opens a detailed comparative overlay modal.
  5. Detailed Comparative Breakdown: Renders comparative progress bars for each biomarker (gills, eyes, scales), displays the delta variance percentage, and presents recommendations.
  6. I18n Localization: Translated comparison control buttons, selection status, modal labels, and variance results to English, Hindi, and Bengali locales.

Technical Depth and Verification

We implemented a robust selection buffer that limits checkboxes to exactly two items. The overlay fetches full biomarker records in parallel using Promise.all to minimize request latency. The variance engine computes the absolute difference between freshness indexes and displays a descriptive delta summary dynamically in the modal.

Verified on the History page. Toggling compare mode enables checkbox selection. Selecting two scans opens the modal, rendering side-by-side grids and correct decay differences.

@vercel

vercel Bot commented Jul 3, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the karan3431's projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@saidai-bhuvanesh, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 45 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 3dfe98b8-8116-47b0-ac14-d546046ff768

📥 Commits

Reviewing files that changed from the base of the PR and between 97c6f33 and 8f2db4c.

📒 Files selected for processing (13)
  • backend/main.py
  • backend/vendors.py
  • src/components/AnalyticsTrends.tsx
  • src/fusionInference.js
  • src/i18n/locales/bn.json
  • src/i18n/locales/en.json
  • src/i18n/locales/hi.json
  • src/lib/api.ts
  • src/lib/offlineDb.ts
  • src/pages/AnalysisDashboard.tsx
  • src/pages/Leaderboard.tsx
  • src/pages/ResultsPage.tsx
  • src/pages/ScannerPage.tsx
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

⚠️ No linked issue found!
This PR cannot be reviewed until a related issue is linked.
Please add Closes #issue_number in your PR description.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature 7: Scan Comparison Mode for Side-by-Side Analysis

1 participant