- 사용 모듈 : web3
-
DB저장소 : Mysql
-
유저 타입
- 아티스트 : 경매 참여 권한 부여
- 일반유저 : 아티스트도 일반유저가 될 수 있음
-
회원가입 정보 : 메타마스크(주소)를 통해 회원가입
- 아티스트 : 아티스트명, 국가정보
- 일반유저 : 국가정보, 좋아하는 장르(선택)
- 나의 NFT
- 공통 : 총 재생시간 및 청취 곡 수 / Recently played / 나의 favorite / 재생목록
- 아티스트 : 좋아요 수 / 총 좋아요 수/ 음악 조회수 및 재생시간
- 청취자 : 이용권 정보 조회(ex -> 권한없음 / 1개월 청취)
-
Input data
- 필수 : 제목, 아티스트(DB 통해서 자동 입력, 수정 불가), 음원(최대 용량 10MB)
- 선택 : 앨범명, 앨범커버, 발매년도, 장르, 작곡가, 작사자
-
Upload
- 음원 : ipfs
- 앨범커버 : s3
-
NFT 발행
- JSON metadata : 음원과 앨범 커버의 주소값 + 나머지 입력 값
- 메타데이터를 통해 NFT 발행
-
서버 DB 저장
- 음원, 앨범커버를 제외한 모든 정보
- 아티스트의 음원/ 구매, 판매 (NFT일반마켓과 동일)
- 경매가와 경매 마감시간 입력
- 입력이 완료되면 경매가 시작된다.
경매 참여자 : 아티스트, 청취자
- 경매는 스마트 컨트렉트를 통해 수행된다.
- 최종 경매 참여가 보다 높은 금액 지불하여 경매를 참여
- 경매 낙찰자 : 스마트 컨트를 통해 -> 아티스트 송금
-
서비스 이용권
- 한 달 단위로 구독권 판매
- 구매자에게만 청취 기능 제공
- 해지 않으면 자동으로 갱신
- 아티스트 : 구독권과 더불어 최초 가입 시 가입비를 추가로 지불
-
런칭 이벤트
- 런칭 후 3개월 이내에 가입한 유저에게 가입비와 월 구독료를 무료로 설정
- 재생시간 횟수로 정렬
- 유저취향과 일치하는 장르음악 제공
- 가입할 때 장르의 선택이 없을 경우 재생시간, 재생횟수로 정렬
- 좋아요 필터링노출 / 키워드 검색기능
- 곡 클릭 시
- 해당 곡의 음원을 포함한 metadata를 불러옴
- 해당 곡 재생 기능
- 좋아요를 클릭해서 My favorite에 담는 기능
- 곡 종료 시 (다음 곡으로 넘어는 것 포함)
- 곡의 총 재생시간, 사용자의 총 재생시간을 기록에 합산하여 DB에 저장
- 메인페이지
- 검색
- 입찰시간 입찰금액
진영 : mysql, 회원가입, 유저 페이지 해민 : solidity, react, 웹디자인 석훈 : ipfs, s3, solidity, 음원 등록 및 NFT 발행, 구매 및 판매, 경매, 경매 참여 철순 : 음원 등록 및 NFT 발행(ipfs,s3) 공통 : 이용권 구입 음원리스트 청취시