Skip to content

Conversation

@sergical
Copy link
Contributor

@sergical sergical commented Jan 17, 2026

Summary

  • Add /test route with bracket prediction functionality
  • Add predictions API endpoints and usePredictions hook
  • Redesign login card to match other cards

Setup

Database migrations

pnpm db:generate
pnpm db:migrate:local

Environment variables

Make sure .dev.vars has the GitHub OAuth credentials:

GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
BETTER_AUTH_SECRET=your_random_secret
BETTER_AUTH_URL=http://localhost:3000

Testing

⚠️ Note: GitHub OAuth callback is configured for the homepage (/). After signing in, you'll be redirected to / - manually navigate to /test to see the prediction functionality.

  1. Run pnpm dev
  2. Go to http://localhost:3000/test
  3. Click "Sign in to Play" (you'll be redirected to / after auth)
  4. Navigate back to /test to make predictions

🤖 Generated with Claude Code

@sergical sergical changed the title Add bracket predictions with retro-styled login card Add bracket predictions Jan 17, 2026
sergical and others added 6 commits January 19, 2026 11:43
- Add /test route with bracket prediction functionality
- Add predictions API endpoints and usePredictions hook
- Redesign login card with 1991 retro paper-cut aesthetic
- Fix bracket finalist node centering

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Restore view-only Bracket.tsx from main for index page
- Create InteractiveBracket.tsx with picking functionality
- Update test.tsx to use InteractiveBracket
- Use single yellow ring color instead of left/right colors
- Make placeholders gray with grayscale filter
- Players only grayscale when eliminated

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- API now deletes existing predictions before inserting new ones
- Reset + save now actually clears predictions from database
- Match FIT_VIEW_PADDING between Bracket and InteractiveBracket

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Merge InteractiveBracket.tsx into Bracket.tsx with isInteractive prop
- Non-interactive mode (homepage): all TBD slots, yellow/red rings, 50px sizing, no grayscale
- Interactive mode (/test): predictions-based, gray rings for TBD, larger finalist/championship sizing
- Delete InteractiveBracket.tsx (logic merged into Bracket.tsx)
- Update test.tsx to use Bracket with isInteractive prop

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Redirect to /test after GitHub OAuth login
- Auto-scroll to #bracket section after login (once per session)
- Clear scroll flag on logout
- Add trustedOrigins for CSRF protection
- Add GitHub OAuth setup docs to CLAUDE.md
- Update players: add Cassidy Williams, Josh Comeau, Kyle Cook

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@sergical sergical force-pushed the sergical/bracket-picking branch from 8547fc6 to d9bd981 Compare January 19, 2026 16:57
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.

1 participant