Skip to content

3-5 New Charts - #6

Closed
ekoslow1-creator wants to merge 82 commits into
mainfrom
feature/sc-46083/create-3-5-charts
Closed

3-5 New Charts#6
ekoslow1-creator wants to merge 82 commits into
mainfrom
feature/sc-46083/create-3-5-charts

Conversation

@ekoslow1-creator

Copy link
Copy Markdown
Collaborator

New charts for the dashboard

Replaces #4, which GitHub auto-closed and permanently locked after a history rewrite (removing a sensitive CSV) force-pushed the branch. Same content as #4, minus the CSV.

saengel and others added 30 commits June 30, 2026 09:01
Documents the component architecture, live API integration
(sefaria.org/api/powered-by), and the project_category data-quality
handling agreed on during brainstorming.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The API's project_category field decomposes against 5 real form
labels (one legacy naming variant) plus freeform "Other:" text -
not the 6 categories shown on developers.sefaria.org as originally
assumed. Verified by decomposing all 36 live entries with zero
unmatched leftovers.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sefaria Intern and others added 7 commits July 30, 2026 11:23
…, screenshot URL validation)

- screenshots.test.js: update the positive-case test to expect the real
  manifest path now that screenshotManifest.json is populated, and add a
  case covering the numeric id form used by ProjectCard.jsx
- index.css: give has-screenshot cards their own hover background on the
  scrim pseudo-element so hovering isn't washed out by the 88%-opacity
  overlay
- generate-screenshots.mjs: validate project_link before navigating to it,
  rejecting non-http(s) schemes and localhost/private/link-local hosts to
  close an SSRF/file-read path from unauthenticated submissions
The flip-card's hidden face was still hit-testable in the region behind
the visible face's centered content (backface-visibility only affects
painting, not pointer events), so clicking the center of a flipped-back
card could trigger the hidden front title's link instead of unflipping.
Scope pointer-events to whichever face is currently visible.

Also add a hover color (var(--accent)) on the project title link, per
request, as a visual affordance that it's clickable.
…ip-away on text selection, remove stale CSS

- Add visibility: hidden alongside pointer-events: none on the flipped
  front face so the title link is removed from the tab order and
  accessibility tree while visually hidden.
- Guard the card's click-to-flip handler against active text selections
  so releasing a text-selection drag inside the back-face description
  no longer flips the card away.
- Remove stale position: relative on .project-card (no longer needed
  now that faces position against .project-card-inner).
- Update stale comment on .project-card-desc to reflect the back-face
  layout (no image/title/link on that face anymore).
Extracts the six recharts blocks out of ChartsAndAnalytics.jsx into
dedicated presentational components (one file per chart), each owning
its chart-specific colors/constants. ChartsAndAnalytics.jsx now only
handles data fetching/derivation and renders each chart with props.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@gitvelocity-reviewer

Copy link
Copy Markdown

📊 Code Quality Score: 44/100

Base Score 55 × ESF 0.8 = 44

Category Score Factors
🔭 Scope 13/20 19 files across utils, components/charts, CSS, and tests; 3 new analytics features; new charts/ subdirectory pattern; no new external API endpoints or service integrations
🏗️ Architecture 12/20 Meaningful refactor from monolithic to 6 focused chart components; new charts/ subdirectory establishes reusable pattern; new utility modules follow existing conventions; no new external dependencies
⚙️ Implementation 12/20 Longest-match-first endpoint normalization algorithm; priority stripping for Claude Code vs. Claude API disambiguation; CSS color-mix() with custom property cascade; vibe-coded trend tracking following existing monthly bucketing pattern
⚠️ Risk 5/20 Pure additive changes with no schema migrations, auth changes, or external service dependencies; .gitignore update prevents accidental sensitive data commits; all changes easily reversible
✅ Quality 11/15 Strong unit test coverage for all utility functions (sefariaTools: 8 tests, techUsed: 6 tests, submissionsTrend: 3 new tests, categories: 3 tests); good edge case coverage; minor fragility in techUsed test ordering assumption; no chart component tests (appropriate for pure rendering)
🔒 Perf / Security 2/5 .gitignore addition prevents sensitive data leaks; no performance benchmarks; no security concerns introduced by new features

Was this score accurate? 👍 Yes · 👎 No

How this was scored →

Scored by GitVelocity · How are scores calculated?

@ekoslow1-creator

Copy link
Copy Markdown
Collaborator Author

Comments:

  • let's have all of the colors on the site be pulled from the Sefaria color palette, does that make sense?
  • Wonderful that you added tests - always important. Let's reassess the best testing framework etc soon, we use Playwright on Sefaria-Project, might be worth aligning.
  • make index.css one source of truth for colors
  • src/components/charts/ExperienceTrendChart.jsx: These broken down charts are a step in the right direction, I'm wondering if we can generalize them even more, have 1 bar chart component, 1 line chart etc, and then pass in the data/params as needed to configure for each specific data series we're trying to display.

Sefaria Intern and others added 18 commits August 5, 2026 11:40
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Drops the manifest-driven local screenshot pipeline (generator script,
public/screenshots/ images, screenshotManifest.json, getScreenshotUrl,
and the ProjectCard background/hover CSS it drove) along with the
puppeteer dependency it required. Screenshots are coming back later,
backed by cloud storage instead of files committed to the repo.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…g, README, CSS

Completes the previous commit, which only removed the screenshot files
themselves. This drops the now-dead getScreenshotUrl import and
background/hover CSS in ProjectCard, the puppeteer dependency and
npm run screenshots script, and the README section documenting it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replaces the literal hex colors in categories.js's CATEGORY_COLORS with
references to the --chart-* palette already defined in index.css, so the
category-color source of truth is the same palette the charts use.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@ekoslow1-creator
ekoslow1-creator force-pushed the feature/sc-46083/create-3-5-charts branch from 36caea1 to 02ed0c5 Compare August 5, 2026 11:25
@ekoslow1-creator ekoslow1-creator mentioned this pull request Aug 5, 2026
4 tasks
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.

2 participants