-
Notifications
You must be signed in to change notification settings - Fork 37
Open
Labels
BackendDesign EngineeringFrontendonlydust-waveContribute to awesome OSS repos during OnlyDust's open source weekContribute to awesome OSS repos during OnlyDust's open source week
Description
This document outlines the design and implementation of the frontend experience for public and judge voting in the audition process. The UI will display vote counts and live commentary for each auditioning artist. Judge commentaries will be visually weighted and stored in decentralized storage (IPFS). While weights are dynamic, judge votes always carry a higher influence than regular votes, and judges can vote on a commentary.
Description
Design and implement the frontend experience for public and judge voting. Display vote counts and live commentary for each auditioning artist. Commentaries from judges should carry visual and systemic weight, be stored on IPFS, and be distinguishable in the UI (e.g., badge, emoji, or icon).
Features
- UI to Display All Artists: Interface showcasing all auditioning artists in the current season.
- Voting Button: A responsive voting button that adapts based on the voting mode (e.g., free or paid).
- Commentary Submission and Display: Users can submit comments; all comments are fetched and displayed, optionally with real-time updates or polling.
- Weighted Commentary System: Comments by judges will be stored with a higher weight and rendered visually with flair (badge, font size, color, etc.).
- Live Total Votes and Unique Voter Count: Real-time count display for total votes and distinct voters per artist.
- Judge Vote Flair: Any judge vote is automatically assigned flair and weight, indicating priority.
Voting Schema (Database or API Payload)
{
auditionId: string;
seasonId: string;
voterWallet: string; // from wallet context
comment: string; // IPFS URI
isJudge?: boolean; // default = false
weight?: number; // default = 1, judge = 3+
}Commentary Schema (To IPFS)
{
auditionId: string;
seasonId: string;
voterWallet: string;
content: string;
isJudge?: boolean;
timestamp: number;
}API Endpoints
POST /api/vote— Submit vote and optional comment (comment is stored to IPFS first)GET /api/auditions/:id/votes— Get all votes + comments for an auditionGET /api/auditions/current— Get all auditions in current season
Acceptance Criteria
- ✅ Each audition page must embed a TikTok video of the performance.
- ✅ Comments section must visually differentiate judge comments with a badge.
- ✅ Vote counts must update live, showing both totals and public/judge split.
- ✅ Wallet signature must be required to submit a vote.
- ✅ Duplicate vote prevention: A wallet can only vote once per audition.
- ✅ Comments must be stored on IPFS with link stored in backend.
Related Issues
- [BUIDL Audition Onchain] FE-003: Performer Registration Form #49 Performer Registration Form
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
BackendDesign EngineeringFrontendonlydust-waveContribute to awesome OSS repos during OnlyDust's open source weekContribute to awesome OSS repos during OnlyDust's open source week