95 lines
3.0 KiB
YAML
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"
|