A Next.js web application for managing speed dating events with real-time session control, participant matching, and admin functionality.
- π Participant Registration: Collect participant information through dynamic forms
- π― AI-Powered Matching: Generate compatible matches using OpenAI integration
- β±οΈ Session Management: Control event timing and flow in real-time
- π₯ Admin Dashboard: Manage participants, view responses, and control sessions
- π Secure Admin Access: Two-layer authentication with admin password protection
- π Real-time Updates: Redis-based session state management with Upstash
- πΎ Database Integration: Supabase for persistent data storage
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- State Management: Redux Toolkit
- Database: Supabase (PostgreSQL)
- Cache/Real-time: Upstash Redis
- AI: OpenAI API
- Authentication: JWT with jose
- Deployment: Vercel
- Node.js 22.x
- npm, yarn, pnpm, or bun
- Supabase account and project
- Upstash Redis database
- OpenAI API key
src/
βββ app/ # Next.js app router pages and API routes
βββ data/ # Static data and configuration
βββ hooks/ # Custom React hooks
βββ lib/ # Utility libraries and configurations
βββ store/ # Redux store and slices
βββ utils/ # Helper functions
βββ middleware.ts # Authentication and routing middleware
# Development server with Turbopack
npm run dev
# Production build
npm run build
# Start production server
npm start
# Run linter
npm run lint- Control event flow (idle, registration, matching, active)
- Real-time state synchronization via Redis
- Admin controls for starting/stopping sessions
- AI-powered compatibility analysis
- Based on participant responses to questionnaire
- Generates personalized match suggestions
- Two-layer admin authentication
- Row-level security (RLS) on Supabase tables
- HTTP-only cookies for session management
- Middleware-based route protection