feat: sponsor dashboard prototype (#52) #53
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "52-sponsor-dashboard"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Mobile-first sponsor management dashboard with three HTML views and shared CSS. All 47 real sponsors rendered as hardcoded mock data using Westside brand colors. Pure HTML/CSS/JS — no frameworks, no build tools.
Changes
sponsor-dashboard/index.html— Pipeline board with 6 kanban columns (Prospect, Contacted, Responded, Negotiating, Committed, Declined), stats bar showing totals/response rate, horizontal scroll on mobilesponsor-dashboard/sponsor-card.html— Sponsor detail view (NanoReleaf example) with editable fields for status, tier, amounts, contact info, presentation, and notes. Quick action buttons for status transitionssponsor-dashboard/sponsor-list.html— Sortable table with search input and filter dropdowns for status/category. JS-driven sorting, filtering, and rendering from mock data arraysponsor-dashboard/styles.css— Shared design system with Westside brand tokens (red #C41E3A, black #1a1a1a), status colors per SponsorStatus enum, category badge colors, mobile-first responsive layoutTest Plan
sponsor-dashboard/index.htmlin browser — verify 6 columns render with correct counts (0, 23, 0, 1, 2, 21)sponsor-card.htmlsponsor-list.html— verify 47 rows render, search filters by name, dropdowns filter by status/category, column headers sortReview Checklist
Related Notes
None — playground prototype, no pal-e-docs notes.
Related
Closes #52
PR #53 Review
DOMAIN REVIEW
Tech stack: Pure HTML/CSS/JS playground prototype. No frameworks, no build tools. Four files in
sponsor-dashboard/directory.Files verified:
index.html-- Pipeline board with 6 kanban columns (Prospect, Contacted, Responded, Negotiating, Committed, Declined)sponsor-card.html-- Detail view for NanoReleaf with editable form fieldssponsor-list.html-- Sortable/filterable table with JS-driven rendering from mock data arraystyles.css-- Shared design system with CSS custom propertiesData accuracy verified:
Branding verified:
#C41E3Aand black#1a1a1aused as brand tokens in CSS custom propertiesAccessibility:
lang="en"on all three HTML documentsaria-labelon nav elements, stats region, search input, filter dropdownsrel="noopener"on external link (nanoreleaf.com)Mobile-first:
table-scrollwrapper for responsive overflowHTML quality:
<!DOCTYPE html>, charset, viewport on all pages<nav>,<main>,<section>,<h1>/<h2>,<label>+forattributesdash-nav__brand,pipeline-col__header,sponsor-card__name)JS quality (sponsor-list.html):
BLOCKERS
None.
Test coverage note: This is a playground prototype repo (pure HTML/CSS/JS, no framework, no build tools). Playground repos are visual prototypes validated by browser inspection per project convention. The test plan in the PR body describes manual browser verification steps. No automated test blocker applies here.
NITS
XSS pattern for production migration:
sponsor-list.htmlbuilds table rows via string concatenation (s.name,s.category). Data is hardcoded so no live risk, but when this moves to production (Svelte), ensure data is properly escaped. Flag for the migration ticket.All card links point to same detail page: Every
<a href="sponsor-card.html">in index.html navigates to the same NanoReleaf detail. Expected for a prototype, but worth noting for the Svelte migration that detail views need parameterized routing.Nav duplication across 3 files: The
<nav>block is copy-pasted identically (except active state). Acceptable for a no-build-tools playground but a natural candidate for Svelte component extraction during migration.Inline styles in empty columns: The Prospect and Responded empty-state messages use inline
styleattributes instead of a CSS class. Minor -- could be a.pipeline-col__emptyclass for consistency.Missing
<main>wrapper on index.html and sponsor-list.html:sponsor-card.htmluses<main class="detail-page">but the other two pages put content directly in<body>. Adding<main>would improve semantic structure.SOP COMPLIANCE
52-sponsor-dashboard)feat: sponsor dashboard prototype (#52))PROCESS OBSERVATIONS
Clean prototype delivery. Four files, well-scoped to the ticket. Data counts are accurate against the stated requirements (23/1/2/21). The pipeline board, detail view, and list table cover the three views requested. Shared CSS with design tokens will translate cleanly to Svelte component styles during migration. No scope creep detected.
VERDICT: APPROVED