project-standalo-sonic-cloud/.workflow/versions/v004/requirements/final.yml

95 lines
3.0 KiB
YAML

feature: "add share music system"
mode: full_auto
finalized_at: "2025-12-18T18:06:00"
analysis:
problem_statement: "Users cannot share music or promote content outside the platform"
target_users: "Artists promoting music, users recommending songs, playlist curators"
core_value: "Enable viral music discovery through effortless sharing"
scope:
mvp_features:
- Share songs via unique link
- Share playlists via unique link
- Share albums via unique link
- Copy link to clipboard
- Social media share buttons (Twitter, Facebook)
- ShareButton component for triggering share
- ShareModal with share options
- Public landing page for shared content
- Basic share analytics
data_model:
entities:
- name: Share
table: shares
fields:
- name: id
type: uuid
primary: true
- name: type
type: enum
values: [song, playlist, album]
- name: target_id
type: uuid
- name: token
type: string
unique: true
- name: user_id
type: uuid
nullable: true
- name: platform
type: string
nullable: true
- name: click_count
type: integer
default: 0
- name: created_at
type: timestamp
api_endpoints:
- method: POST
path: /api/share/song/:id
purpose: Generate share link for a song
- method: POST
path: /api/share/playlist/:id
purpose: Generate share link for a playlist
- method: POST
path: /api/share/album/:id
purpose: Generate share link for an album
- method: GET
path: /api/share/:token
purpose: Resolve share token and get content
- method: POST
path: /api/share/:token/click
purpose: Track share link click
ui_structure:
pages:
- name: SharePage
route: /s/:token
purpose: Landing page for shared content
components:
- name: ShareButton
purpose: Trigger share modal on songs/playlists/albums
- name: ShareModal
purpose: Display share options (copy link, social buttons)
- name: SocialShareButtons
purpose: Twitter and Facebook share buttons
acceptance_criteria:
- criterion: "User can generate share link for any song"
verification: "Click share button on song, get unique link, link works"
- criterion: "User can generate share link for playlist"
verification: "Click share button on playlist, get unique link, link works"
- criterion: "User can generate share link for album"
verification: "Click share button on album, get unique link, link works"
- criterion: "Copy to clipboard works"
verification: "Click copy button, paste shows correct URL"
- criterion: "Social share buttons open correct URLs"
verification: "Twitter/Facebook buttons open share dialogs with content"
- criterion: "Share page displays content correctly"
verification: "Visit share link, see song/playlist/album with play option"
- criterion: "Share page has call-to-action"
verification: "Share page shows 'Listen on Sonic Cloud' or 'Sign up' button"