Skip to content

Latest commit

 

History

History
330 lines (261 loc) · 8.81 KB

File metadata and controls

330 lines (261 loc) · 8.81 KB

🚀 CO-FOUNDER MATCHING SYSTEM - COMPLETE IMPLEMENTATION PLAN

📋 Overview

Building a production-grade, 4-tier progressive profile system with world-class co-founder matching.


✅ PHASE 1: DATABASE & BACKEND (Priority 1)

1.1 Database Schema ✅ DONE

  • Created complete_user_profile_schema.sql with all tiers
  • Auto-calculation trigger for profile completion percentage
  • Indexes for performance
  • ACTION REQUIRED: Run SQL in Supabase Dashboard

1.2 Backend API Endpoints (TO BUILD)

Profile Management

PUT /api/users/:id/profile
  - Save ANY profile field (auto-save friendly)
  - Returns updated profile_completion_percentage
  
GET /api/users/:id/profile
  - Get complete user profile
  - Include completion status per tier
  
POST /api/users/:id/profile/validate-tier
  - Check if specific tier is complete
  - Used for feature gating

Co-Founder Matching

GET /api/matches?userId=X
  - Returns potential matches with match scores
  - Filters: minScore, location, skills, etc.
  - Smart algorithm (see below)
  
POST /api/matches
  - Send connection request
  - Creates entry in cofounder_matches table
  
GET /api/matches/requests?userId=X
  - Get incoming & sent requests
  
POST /api/matches/:id/respond
  - Accept/reject connection request

✅ PHASE 2: MATCHING ALGORITHM

Match Score Calculation (0-100)

calculateMatchScore(user1, user2) {
  let score = 0;
  
  // 1. Complementary Skills (25 points)
  if (user1.looking_for === user2.primary_skill) score += 15;
  if (user2.looking_for === user1.primary_skill) score += 10;
  
  // 2. Industry Alignment (15 points)
  const commonInterests = intersection(user1.industry_interests, user2.industry_interests);
  score += Math.min(commonInterests.length * 5, 15);
  
  // 3. Commitment Level Match (20 points)
  if (user1.can_commit_20hrs_week === user2.can_commit_20hrs_week) score += 10;
  if (user1.can_go_fulltime === user2.can_go_fulltime) score += 10;
  
  // 4. Location/Remote Preference (15 points)
  if (user1.city === user2.city) score += 10;
  if (user1.remote_preference === 'Fully Remote' || user2.remote_preference === 'Fully Remote') score += 5;
  
  // 5. Stage Alignment (10 points)
  if (user1.stage === user2.stage) score += 10;
  
  // 6. Values Alignment (10 points)
  const commonValues = intersection(user1.core_values, user2.core_values);
  score += Math.min(commonValues.length * 3, 10);
  
  // 7. Profile Completion Bonus (5 points)
  if (user1.tier_3_complete && user2.tier_3_complete) score += 5;
  
  return Math.min(score, 100);
}

✅ PHASE 3: FRONTEND - MULTI-STEP PROFILE WIZARD

3.1 Profile Setup Flow

Component: EnhancedProfileSetup.jsx

Step 1: Welcome (Tier 1 - Already done at signup)

  • Just show "Welcome! Let's set up your profile"

Step 2: Basic Info (Tier 2 - 30% completion)

  • Professional Status
  • Location (City, Country, Timezone)
  • LinkedIn URL
  • Skills (tag input)
  • Bio (textarea, 100-300 chars)
  • Current Stage

Step 3: Commitment & Availability (Tier 3 - Part 1)

  • Can you commit 20+ hrs/week?
  • Can you go full-time? (Now / 3mo / 6mo / 1yr)
  • Okay with 0 salary?
  • How long without pay?

Step 4: What You're Looking For (Tier 3 - Part 2)

  • Looking for (Technical / Business / etc.)
  • Must-have skills (freetext)
  • Deal breakers (multi-select)
  • Remote preference

Step 5: Your Expertise (Tier 3 - Part 3)

  • Primary skill
  • If technical: Tech stack (multi-select UI)
  • Proof of work (GitHub, Portfolio links)

Step 6: Idea & Industry (Tier 3 - Part 4)

  • Do you have an idea?
  • Idea stage
  • Industry interests (multi-select chips)
  • Open to pivot?

Step 7: Equity & Money (Tier 3 - Part 5)

  • Expected equity
  • Okay with vesting?
  • Willing to invest money?
  • Investment range

Step 8: Working Style (Tier 3 - Part 6)

  • Decision-making style
  • Conflict handling
  • Work style
  • Core values (select top 3)
  • Personality type
  • Work time preference

Step 9: Risk & Experience (Tier 3 - Part 7)

  • Have you built before?
  • Previous failure reason
  • What would make you quit?
  • Comfortable with uncertainty?

Step 10: Premium Signals (Tier 4 - 100% completion)

  • Trial project willingness
  • Hackathon experience
  • Founder references (dynamic form)
  • Why 10/10 co-founder
  • Intro video URL
  • Legal clearances

Features:

  • Auto-save on every field change
  • "Save & Continue Later" button on each step
  • Progress bar at top
  • "Skip for now" on Tier 4 questions
  • Navigation: Back/Next buttons
  • Field validation with helpful errors

✅ PHASE 4: UX ENHANCEMENTS

4.1 Progress Tracking

Header Component:

{user.profile_completion_percentage < 80 && (
  <div className="profile-progress-banner">
    <ProgressBar percentage={user.profile_completion_percentage} />
    <span>{user.profile_completion_percentage}% Complete</span>
    <button onClick={openProfileSetup}>Complete Profile →</button>
  </div>
)}

4.2 Feature Gating

const features = {
  ideas: { requiredTier: 2, completionNeeded: 30 },
  validation: { requiredTier: 2, completionNeeded: 30 },
  cofounderMatches: { requiredTier: 3, completionNeeded: 80 },
  messaging: { requiredTier: 3, completionNeeded: 80 },
  resources: { requiredTier: 1, completionNeeded: 0 }, // Always accessible
  copilot: { requiredTier: 1, completionNeeded: 0 }
};

const canAccessFeature = (feature) => {
  return user.profile_completion_percentage >= features[feature].completionNeeded;
};

4.3 Locked Feature UI

{!canAccessFeature('cofounderMatches') && (
  <LockedFeatureCard 
    title="Co-Founder Matches"
    icon="users"
    percentageNeeded={80}
    currentPercentage={user.profile_completion_percentage}
    actionText="Complete Profile to Unlock"
  />
)}

✅ PHASE 5: MATCHING PAGE UI

5.1 Matches Dashboard

Layout:

┌─────────────────────────────────────┐
│ Co-Founder Matches          [Filter]│
│ ─────────────────────────────────── │
│ Pending Requests (3)        Sent (2)│
│ ─────────────────────────────────── │
│ ┌──────────────┐ ┌──────────────┐   │
│ │ User Card    │ │ User Card    │   │
│ │ 85% Match ⭐ │ │ 78% Match    │   │
│ │ [Connect]    │ │ [Connect]    │   │
│ └──────────────┘ └──────────────┘   │
└─────────────────────────────────────┘

5.2 Match Card Component

<MatchCard>
  <Avatar />
  <Name + Badge (if tier 4 complete) />
  <MatchScore percentage={85} />
  <MutualInterests tags={['AI', 'SaaS']} />
  <KeyStats>
    - Professional Status
    - Location
    - Commitment Level
  </KeyStats>
  <Actions>
    <button>View Full Profile</button>
    <button className="primary">Connect</button>
  </Actions>
</MatchCard>

5.3 Filters Sidebar

  • Location
  • Skills
  • Industry
  • Min Match Score (slider)
  • Commitment Level
  • Profile Completion (Only show 80%+)

✅ PHASE 6: NOTIFICATIONS & REMINDERS

6.1 In-App Notifications

  • New match request (bell icon badge)
  • Match request accepted
  • High-score match found (85%+)

6.2 Email Triggers

  • Profile 50% complete → Reminder email after 24h
  • New match request → Immediate email
  • Match request accepted → Immediate email
  • Ideal match found (90%+) → Weekly digest

📦 TECHNICAL STACK

Frontend

  • React (existing)
  • Multi-step form library (or custom)
  • Auto-save with debouncing
  • Progress bar component
  • Tag/chip input components

Backend

  • Express.js (existing)
  • Supabase PostgreSQL (existing)
  • Matching algorithm (custom JS)
  • Email service (optional: SendGrid/Resend)

Database

  • PostgreSQL with JSONB for flexible fields
  • GIN indexes for array searches
  • Triggers for auto-calculations
  • RLS policies for security

🎯 SUCCESS METRICS

  1. Profile Completion Rate

    • Target: 60% reach Tier 3 (80% completion)
    • Target: 20% reach Tier 4 (100% completion)
  2. Match Quality

    • Average match score: 70+
    • Connection acceptance rate: 30%+
  3. Engagement

    • Time to complete Tier 3: < 20 minutes
    • Return rate to complete profile: 40%+

🚀 NEXT STEPS

  1. ✅ Run complete_user_profile_schema.sql in Supabase
  2. ⬜ Build backend API endpoints
  3. ⬜ Create multi-step profile wizard
  4. ⬜ Implement matching algorithm
  5. ⬜ Build matches dashboard
  6. ⬜ Add progress tracking & feature gating
  7. ⬜ Test end-to-end
  8. ⬜ Deploy to production

Ready to build the best co-founder matching platform! 🎉