Skip to content

Ticket 13#54

Open
pakxander10 wants to merge 11 commits intocssgunc:mainfrom
pakxander10:ticket-13
Open

Ticket 13#54
pakxander10 wants to merge 11 commits intocssgunc:mainfrom
pakxander10:ticket-13

Conversation

@pakxander10
Copy link
Contributor

Motivation
Committees are a key organizational unit of the senate. Students need to see what each committee does and who serves on it.

Deliverables
Build /committees/page.tsx with a card for each active committee showing: name, short description (truncated), chair name
Each card links to /committees/[id]
Build /committees/[id]/page.tsx with: full description, chair info (name, email, prominently displayed), and member roster table (name, role, email)
Wire to getCommittees() and getCommitteeById()
Handle 404 for invalid committee IDs
Important Notes
Depends on #7 (layout), #9 (API client)
Chair info should be visually distinct from the member list (e.g., separate card or highlighted row)
Use mock data if backend is not ready

KiNgRhIn08 and others added 11 commits February 21, 2026 18:01
…tion

Refactored the global header to use a three-tier stacked layout with
UNC branding, added a logo image, and enabled client-side routing
for navigation menu items.
The news detail page completes the news reading flow, and the homepage news tiles are the first content visitors see on the landing page. Together these deliver the core news experience end-to-end.

Deliverables
Build /news/[id]/page.tsx showing: full article title, image (full-width or large), author name, published date, last edited date, and full body content
Handle 404 / not found state with a friendly message
Build the homepage (/page.tsx) "Recent News" section: display the 3 most recent published news articles as tiles (image, title, description) with a "View All News" link to /news
Wire both to the API client (getNewsById, getNews with limit=3)
Important Notes
Depends on Shadcn Setup + Global Layout Shell + Navbar cssgunc#7 (layout) and TypeScript Types + API Client cssgunc#9 (API client)
The homepage will have more sections added in future sprints (carousel, calendar, finance hearing button, contact CTA) — build the news section as a self-contained component (src/components/home/RecentNews.tsx) so other sections can be added alongside it
News body content may be HTML or Markdown (TDD says body is TEXT) — for now render as plain text; rich text rendering can be added later
Use mock data if backend is not ready
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.

3 participants