Skip to content

2026 website redesign - #70

Merged
t0rrential merged 2 commits into
mainfrom
2026-website-redesign
Sep 1, 2026
Merged

2026 website redesign#70
t0rrential merged 2 commits into
mainfrom
2026-website-redesign

Conversation

@t0rrential

Copy link
Copy Markdown
Contributor

merge muhammed's site redesign into main as it's alr deployed

Muhammad Khurram and others added 2 commits June 7, 2026 21:33
Full rebuild of the ACM at UTA site from the ground up:

- Static public site: homepage, committees, projects, events, gallery,
  HackUTA, officers, about, apply, contact
- Live data via Supabase (committees, events, news, sponsors, stats);
  all pages fall back to static data when DB is unreachable
- Member portal: auth (email + Google OAuth), onboarding, profile,
  notifications, leaderboard, QR check-in
- Admin panel: events, applications (form builder), members, teams,
  mentorship, news CRUD, HackUTA toggle, roster, audit log
- Design system: hand-written CSS with CSS custom property tokens,
  dark/light mode, Archivo + JetBrains Mono typography
- Gallery reworked to text cards linking to Google Photos (no thumbnails)
- Events page: Google Calendar + Apple iCal save from picker modal
- Supabase migrations 001-005 + seed data
- .env.example added; supabase/.temp excluded from version control
Copilot AI lite review requested due to automatic review settings September 1, 2026 21:37
@vercel

vercel Bot commented Sep 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
acmuta-site Error Error Sep 1, 2026 9:37pm UTC
acmuta-site-2026 Ready Ready Preview Sep 1, 2026 9:37pm UTC

@t0rrential
t0rrential merged commit cfa5b8e into main Sep 1, 2026
3 of 4 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Merges the 2026 site redesign into main, including a Supabase-backed member portal/admin area plus refreshed public pages and updated content/data models.

Changes:

  • Adds Supabase schema utilities and migrations for new site content/features (HackUTA settings, news items) plus dev SQL helpers.
  • Introduces authentication flows, onboarding gating, member portal pages, and a new admin section with applications/members/mentorship/audit features.
  • Refactors public committee pages to a shared CommitteePage and updates content datasets (events, projects, sponsors, news, committees, gallery, alumni).

Reviewed changes

Copilot reviewed 94 out of 106 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
supabase/teardown.sql Dev-only teardown script to wipe project-owned DB objects for re-running migrations.
supabase/migrations/005_news_items.sql Adds news_items table + RLS and seeds initial homepage news.
supabase/migrations/004_hackuta_settings.sql Adds single-row HackUTA configuration table + RLS and seed row.
supabase/dev_test_data.sql Dev-only SQL snippets to create realistic test data and role setups.
supabase/config.toml Adds Supabase CLI local config for running the stack.
supabase/check_state.sql One-off SQL diagnostic to check seed/application-builder state.
src/pages/SignUp.tsx Adds signup route wrapper for AuthScreen.
src/pages/SignIn.tsx Adds signin route wrapper for AuthScreen.
src/pages/ResetPassword.tsx Adds password reset UI/flow using useAuth.updatePassword.
src/pages/Research.tsx Refactors committee page to CommitteePage(slug="research").
src/pages/Projects.tsx Rewrites projects page to load projects from API and render ProjectCards.
src/pages/Outreach.tsx Refactors committee page to CommitteePage(slug="outreach").
src/pages/Notifications.tsx Adds portal notifications list + read/mark-all-read actions.
src/pages/NotFound.tsx Replaces basic 404 with redesigned “node field” themed 404.
src/pages/Marketing.tsx Refactors committee page to CommitteePage(slug="marketing").
src/pages/Leaderboard.tsx Adds portal leaderboard page with scope/board toggles.
src/pages/Educate.tsx Refactors committee page to CommitteePage(slug="educate").
src/pages/Create.tsx Refactors committee page to CommitteePage(slug="create").
src/pages/Community.tsx Refactors committee page to CommitteePage(slug="community").
src/pages/CheckIn.tsx Adds QR check-in flow UI calling callCheckIn.
src/pages/AuthCallback.tsx Adds Supabase auth callback handler for signup confirmation + recovery flow.
src/pages/ApplyForm.tsx Adds applicant form-fill page with autofill + resume upload + submission flow.
src/pages/ApplyDetail.tsx Adds apply track detail page showing forms for a committee/track.
src/pages/Album.tsx Removes the old gallery album detail page implementation.
src/pages/admin/useCommitteeOptions.ts Adds shared hook to compute committee options for admins vs directors.
src/pages/admin/auditLabels.ts Adds audit log labeling/grouping + metadata formatting helpers.
src/pages/admin/AdminRoster.tsx Adds admin-only roster table with member details modal.
src/pages/admin/AdminMentorship.tsx Adds mentorship pairing management UI (admin + Educate director).
src/pages/admin/AdminMembers.tsx Adds committee member/role management UI (admin/director scoped).
src/pages/admin/AdminLayout.tsx Adds admin area layout + nav gating based on admin/director roles.
src/pages/admin/AdminHackUTA.tsx Adds admin UI to manage HackUTA settings.
src/pages/admin/AdminDashboard.tsx Adds admin/dashboard summary + recent activity panel.
src/pages/admin/AdminAuditLog.tsx Adds admin audit log page with filtering + pagination.
src/pages/admin/AdminApplicationForms.tsx Adds admin applications index page to create/edit forms and view submissions.
src/lib/validation.ts Adds shared validators (Mavs email, student ID, URLs).
src/lib/supabase.ts Adds Supabase client initialization from Vite env vars.
src/lib/onboardingOptions.ts Adds onboarding dropdown options + helpers for “Other/Custom” splitting.
src/lib/download.ts Adds downloadBlob helper used by admin exports.
src/lib/auth.tsx Adds AuthProvider and useAuth wrapping Supabase auth + profile fetch.
src/data/stats.ts Adds redesigned homepage stats dataset.
src/data/sponsors.ts Updates sponsors dataset structure + legacy compat export.
src/data/projects.ts Updates projects dataset structure + legacy compat export.
src/data/news.ts Updates news dataset structure + legacy compat export.
src/data/hackuta.ts Adds HackUTA config dataset and interface.
src/data/gallery.ts Reworks gallery dataset into PhotoAlbum entries (google photos URLs).
src/data/events.ts Adds events dataset (upcoming + past) with ISO datetime fields.
src/data/committees.ts Reworks committees dataset into richer, typed structure + legacy compat export.
src/data/alumni.ts Reworks alumni dataset structure + legacy compat export.
src/components/ThemeToggle.tsx Adds theme toggle that sets data-theme + persists to localStorage.
src/components/Reveal.tsx Adds IntersectionObserver-based reveal/stagger reveal utilities.
src/components/ProjectCard.tsx Adds redesigned project card component.
src/components/Placeholder.tsx Adds placeholder image component that can render real images when present.
src/components/PageTop.tsx Adds standardized “page top” section component.
src/components/NodeField.tsx Adds animated canvas node background (used on 404).
src/components/Modal.tsx Adds modal component with ESC handling and click-outside close.
src/components/Loading.tsx Adds loading components for inline + full-page loading states.
src/components/Layout/PortalLayout.tsx Adds portal layout wrapper with scroll-to-top behavior.
src/components/Layout/PortalHeader.tsx Adds portal header with theme toggle, notifications bell, and profile link.
src/components/Layout/NotificationBell.tsx Adds polling unread notification bell for the portal header.
src/components/Layout/Layout.tsx Refactors main layout to use Outlet + route transitions + scroll-to-top.
src/components/Layout/Footer.tsx Rewrites footer to match redesigned CTA + navigation + social links.
src/components/Layout/ChromelessLayout.tsx Adds layout wrapper for auth/onboarding routes (no header/footer).
src/components/CommitteePage.tsx Adds shared dynamic committee detail page implementation.
src/components/CommitteeLogo.tsx Adds committee logo helpers (image map + SVG fallback marks).
src/components/Avatar.tsx Adds initials-based avatar component.
src/components/applications/SubmissionView.tsx Adds readonly submission viewer with resume viewing support.
src/components/applications/QuestionRenderer.tsx Adds form question rendering for multiple question types.
src/components/applications/QuestionForm.tsx Adds form state/validation + conditional visibility for questions.
src/components/admin/MemberInfoModal.tsx Adds admin modal to view member profile and award points.
src/App.tsx Rebuilds router with auth provider, onboarding gate, portal/admin layouts, and new routes.
quick-check.ts Removes a one-off Google Calendar script from the repo root.
package.json Adds dependencies for Supabase client, zipping, and QR code rendering.
index.html Updates metadata + adds theme bootstrapping script to prevent flash.
.gitignore Adds env and Supabase temp ignores.
.env.example Adds example env vars required for Supabase client config.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +6 to +20
drop table if exists news_items;

create table news_items (
id uuid primary key default gen_random_uuid(),
tag text not null default '',
title text not null,
blurb text not null default '',
link text not null default '/',
item_date date not null default current_date,
is_published boolean not null default true,
sort_order integer not null default 0,
created_at timestamptz not null default now(),
created_by uuid references profiles(id),
updated_at timestamptz not null default now()
);
Comment thread src/lib/download.ts
Comment on lines +2 to +11
export function downloadBlob(blob: Blob, filename: string): void {
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
a.remove();
URL.revokeObjectURL(url);
}
Comment thread src/lib/validation.ts
Comment on lines +36 to +40
const host = kind ? URL_KIND_HOST[kind] : undefined;
if (host && !url.hostname.toLowerCase().endsWith(host)) {
return `Enter a valid ${URL_KIND_NAME[kind!]} URL.`;
}
return null;
@ali-jifi
ali-jifi deleted the 2026-website-redesign branch September 3, 2026 19:45
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