Skip to content

Latest commit

 

History

History
40 lines (32 loc) · 900 Bytes

File metadata and controls

40 lines (32 loc) · 900 Bytes

User Matching System

Algorithm

Scores based on shared interests (0-100 points):

  • Categories: 50 pts max
  • Tags: 30 pts max
  • Keywords: 20 pts max

Usage

import { useUsers } from '@/composables/useUsers'

const { users, findMatches } = useUsers(sphereId, currentUserId)

// Get matches for current user
const matches = findMatches(currentUser)
// Returns UserMatch[] sorted by score + distance

UserMatch Interface

interface UserMatch {
  user: User
  matchScore: number
  sharedInterests: {
    categories: string[]
    tags: string[]
  }
  distance?: number
}

Integration

  • UsersSidebar: Displays sorted matches
  • ProfileEditor: Update interests to improve matches
  • Notifications: Notifies on high-score matches (future)

Cross-ref: Privacy | Phase 1 Summary