FEATURE SPEC
Recipe Voting System
Community-driven recipe ranking with weighted votes, cooldown timers, and fraud detection.
⬆️
Upvote / Downvote
One vote per user per recipe. Toggle to change or retract.
⏱️
Cooldown Window
5-minute cooldown between vote changes prevents rapid manipulation.
🛡️
Fraud Detection
Fingerprint-based deduplication catches sock-puppet accounts.
Vote Weight Formula
weight = base_weight × (1 + 0.1 × account_age_months) × (1 + 0.05 × verified_recipes) × reputation_multiplier
New accounts start at 1.0×. Power users with verified recipes and long account history earn up to 3.5× vote weight.
API Endpoints
POST/api/v1/recipes/:id/vote
Body: { "direction": "up" | "down" }. Returns new score and user vote status.
GET/api/v1/recipes/:id/votes
Returns aggregate score, total votes, and current user's vote.
Leaderboard Integration
Top-voted recipes surface on the trending leaderboard with a 24-hour rolling window. Stale votes decay at 2% per hour to keep content fresh.
View leaderboard spec →