This document outlines the verification steps for the CEKA website upgrade.
- Node.js 18+ installed
- npm or yarn package manager
- Supabase project configured (URL and anon key)
# Copy environment example file
cp .env.example .env
# Edit .env and add your Supabase credentials:
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-keynpm installnpm run devVerify the server starts without errors at http://localhost:5173
npm run buildVerify the build completes without TypeScript or bundling errors.
- Home page loads correctly on desktop and mobile (375px)
- No horizontal scroll appears at 375px viewport width
- Mobile hamburger menu opens full-screen with close button
- Mobile menu navigation items work correctly
- Tabs (TabsList) scroll horizontally on mobile without page overflow
| Page | Route | Verification |
|---|---|---|
| Home | / |
Carousel loads, Hero displays, sections visible |
| Blog | /blog |
Posts load from Supabase blog_posts table |
| Resources | /resources |
Resources load from Supabase resources table |
| Calendar | /calendar |
Events load from civic_events table |
| Legislative Tracker | /legislative-tracker |
Bills load from bills table |
| Auth | /auth |
Login/signup forms display correctly |
| Profile | /profile |
User profile loads (when authenticated) |
- Blog posts fetch from
public.blog_posts - Resources fetch from
public.resources - Events fetch from
public.civic_events - Bills fetch from
public.bills - Carousel slides fetch from
public.carousel_slides - User profiles sync with
public.profiles - Authentication works via Supabase Auth
- Month view renders correctly
- Date selection works with GSAP animation
- Events display for selected date
- iCalendar (.ics) download button works
- Google Calendar link opens correct URL
- Theme toggle exists in settings
- Dark mode displays correctly (default)
- Light mode displays correctly
- Theme persists across page reloads
- Touch interactions are responsive
- Pull-to-refresh doesn't break layout
- Safe area insets respected (iOS notch)
- Keyboard doesn't cause layout shift
The following tables should exist in Supabase (reference: migrations/20260125_ceka_schema_reference.sql):
profilesresourcesresource_categoriesresource_viewsblog_postsblog_categoriesbillsbill_followscivic_eventscarousel_slidesvolunteer_opportunitiesvolunteer_applicationsdiscussionsdiscussion_repliesdocumentsfeedbacknotificationscommunity_members
-
TypeScript lint errors about
useState/useEffectare IDE configuration issues, not actual code problems. Runnpm run buildto verify. -
Mock data fallback - Some components fall back to sample data if Supabase tables are empty. This is intentional for development.
-
GSAP animations require the
gsappackage. Verify it's installed. -
ICS calendar requires the
icspackage for event downloads.
Changes were made in the following areas:
- Layout fixes - Added
overflow-x-hiddento prevent horizontal scroll - Mobile menu - Improved full-screen iOS-inspired design
- Storage adapter -
src/lib/storage.tsfor multi-provider support - Events Calendar - GSAP animations, iCal download, Google Calendar links
- Migration reference -
migrations/20260125_ceka_schema_reference.sql - Environment template -
.env.example
For issues or questions, refer to the CEKA repository documentation.