A next-generation dating platform that uses AI to create authentic personality profiles from YouTube data and provides intelligent compatibility matching between users.
TasteMatch revolutionizes online dating by analyzing users' YouTube consumption patterns to create detailed personality profiles, then using AI to calculate compatibility scores between potential matches. Instead of superficial swiping, users discover meaningful connections based on deep personality analysis and shared interests.
- YouTube Data Analysis: Analyzes user's subscriptions, liked videos, watch later, and playlists
- Gemini Integration: Generates comprehensive personality profiles using Google Gemini
- Rich Profile Data: Creates dating personas, ideal partner descriptions, and personality breakdowns
- Automatic Refresh: Users can regenerate profiles with updated YouTube data
- AI Compatibility Analysis: Uses Gemini to compare user traits and preferences
- Multi-Dimensional Scoring: Analyzes personality match, interests alignment, and dating goals
- Detailed Compatibility Reasons: Explains why users match with specific examples
- Color-Coded Results: Visual indicators for compatibility levels (80%+ green, 60%+ yellow, <60% red)
- All-User Display: Shows all available users instead of algorithm-limited cards
- Comprehensive Profiles: Displays core traits, dating personas, and interests
- Like Functionality: Send likes with match detection
- Responsive Design: Grid layout optimized for desktop and mobile
- Google OAuth: Secure authentication with YouTube API access
- Profile Management: View and refresh personal dating profiles
- Match System: Track mutual likes and matches
- Chat Interface: Communication between matched users
- React 18 with TypeScript
- Tailwind CSS for styling
- NextAuth.js for authentication
- Responsive components with modern UI/UX
/api/youtube - YouTube data analysis & profile generation
/api/discover - AI compatibility scoring for all users
/api/profiles - User profile CRUD operations
/api/swipe - Like/dislike functionality
/api/matches - Match management
/api/chat - Messaging system
/api/embeddings - Vector embeddings for future features
users (
id uuid PRIMARY KEY,
google_id text UNIQUE,
email text,
name text,
avatar_url text,
core_traits text,
potential_career_interests text,
dream_date_profile text,
ideal_date text,
ideal_partner text,
unique_scoring_chart text,
summary text,
core_personality_traits text,
interests text,
created_at timestamptz
)- Google Gemini: Personality analysis and compatibility scoring
- YouTube API v3: Data fetching (subscriptions, liked videos, playlists)
- Smart Text Extraction: Parses AI responses into structured profile data
- Fallback Systems: Robust error handling with meaningful default content
- Node.js 18+
- npm/yarn/pnpm
- Google Cloud Console project
- Google AI API account
- Supabase project
Create .env.local with:
# App Configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_nextauth_secret
# Google OAuth (YouTube API access required)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# Google AI API
GOOGLE_AI_API_KEY=your_google_ai_api_key
# Supabase Database
SUPABASE_PROJECT_URL=your_supabase_url
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_key
SUPABASE_ANON_KEY=your_supabase_anon_key- Clone and install dependencies:
git clone <repository-url>
cd PennApps
npm install-
Set up Google OAuth:
- Create project in Google Cloud Console
- Enable YouTube Data API v3
- Create OAuth 2.0 credentials
- Add redirect URI:
http://localhost:3000/api/auth/callback/google
-
Set up Supabase:
# Run the database schema
psql -f database.sql- Start development server:
npm run dev- Populate test data (optional):
-- Run fake_profiles.sql in Supabase SQL editor
-- This adds 15 diverse test user profiles- User signs in with Google (YouTube access required)
- System analyzes YouTube data (subscriptions, likes, playlists)
- Gemini generates comprehensive personality profile
- Profile saved to database with all structured fields
- User navigates to "Discover" tab
- System fetches all available users from database
- AI analyzes compatibility between current user and each potential match
- Users displayed in grid with compatibility scores and detailed breakdowns
For each potential match:
βββ Compare core personality traits
βββ Analyze dating preferences alignment
βββ Evaluate shared interests and values
βββ Generate specific compatibility reasons
βββ Calculate overall compatibility score (0-100%)
- User reviews compatibility explanations
- Sends likes to interesting matches
- System detects mutual likes (matches)
- Matched users can begin conversations
YouTube Data β Gemini Analysis β Text Parsing β Structured Data β Database
β β β β β
Subscriptions Personality Extract Profile Supabase
Liked Videos Analysis Sections Object Storage
Playlists Career Interests Dating Persona
Watch Later Ideal Partner Summary
// AI analyzes both users and returns:
{
score: 85, // Overall compatibility (0-100)
reasons: [ // Specific compatibility factors
"Shared love of creativity",
"Similar humor styles",
"Compatible energy levels"
],
personality_match: 90, // Personality alignment
interests_match: 80, // Shared interests
dating_goals_match: 85 // Dating preference compatibility
}{
core_traits: "Personality description (2-3 sentences)",
potential_career_interests: "Career fields based on content",
dream_date_profile: "Dating persona and approach",
ideal_date: "Specific date scenario preferences",
ideal_partner: "Detailed partner preferences",
unique_scoring_chart: "Personality breakdown with percentages",
summary: "Overall profile summary",
core_personality_traits: "Key trait keywords",
interests: "Hobby and interest categories"
}- β Google OAuth with YouTube API integration
- β Basic profile creation from YouTube data
- β User interface with profile cards
- β Match and swipe functionality
- β Gemini integration for personality analysis
- β Structured data extraction from AI responses
- β Database schema optimization
- β Profile refresh functionality
- β
Created
/api/discoverendpoint - β AI-powered compatibility scoring between all users
- β
New
DiscoverInterfacecomponent with grid layout - β Real-time compatibility analysis with detailed breakdowns
- β Visual compatibility indicators and explanations
- β Like functionality with match detection
- β Improved error handling and fallback systems
- β Enhanced AI prompts for better profile generation
- β Database refresh functionality for profile updates
- β Comprehensive logging for debugging AI responses
- β Test data generation (15 diverse fake profiles)
- β Complete landing page redesign with professional, minimalistic design
- β Brand transformation from "Hinge 2" to "TasteMatch"
- β Modern white-background design inspired by premium dating apps
- β Simplified one-page landing experience without scrolling
- β Fixed navigation header with clean typography
- β Professional sidebar navigation for authenticated users
- β Redesigned profile cards with white backgrounds and gradient headers
- β Fixed hydration errors and improved SSR compatibility
- β Added sign out functionality to profile section
- Beautiful card-based layout
- Personality trait visualization
- Dating persona highlights
- Ideal partner descriptions
- Interactive elements
- Responsive grid layout (1-3 columns based on screen size)
- Compatibility score bars with color coding
- Detailed breakdown of personality/interests/goals alignment
- Hover effects and smooth transitions
- Like buttons with immediate feedback
- Modern minimalistic design with clean white backgrounds
- Professional color scheme using gray-900 and pink-500 accents
- Tinder-level polish with premium app aesthetics
- Responsive sidebar navigation instead of traditional tabs
- Gradient headers for profile sections with subtle animations
- Consistent typography with proper hierarchy and spacing
- Mobile-responsive design that works across all devices
- Smooth hover effects and micro-interactions
- Card-based layouts with subtle shadows and rounded corners
- Advanced filtering (age, location, interests)
- Video profile introductions
- AI conversation starters
- Compatibility trend analysis
- Group activity suggestions
- Real-time messaging improvements
- Vector similarity search for faster matching
- Caching layer for compatibility scores
- Advanced analytics dashboard
- Performance optimizations
- Enhanced security measures
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Google AI for providing the Gemini API
- Google for YouTube Data API v3
- Supabase for database infrastructure
- Next.js team for the excellent framework
- Vercel for deployment platform
Built with β€οΈ for PennApps Hackathon
TasteMatch represents the future of authentic online dating - where meaningful connections are discovered through deep personality understanding rather than superficial judgments.