Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Market #9

Open
mjshin82 opened this issue Oct 7, 2019 · 6 comments
Open

Market #9

mjshin82 opened this issue Oct 7, 2019 · 6 comments

Comments

@mjshin82
Copy link

mjshin82 commented Oct 7, 2019

개요

  • Ethereum 호환 체인 플랫폼 대상 외부 웹 마켓 개발

참고 페이지

리스팅: https://rinkeby.opensea.io/assets/myki
디테일뷰: https://rinkeby.opensea.io/assets/0x671a8CD30F9b27e6eDF154FCA20F29c38ff167B4/215

@mjshin82
Copy link
Author

mjshin82 commented Oct 7, 2019

필요 기능 셋

  • 로그인
  • 리스팅
  • 디테일뷰
  • 상품등록/ 구매
  • 상점 관련 스마트 컨트랙

@mjshin82
Copy link
Author

mjshin82 commented Oct 7, 2019

로그인

  • 메타마스크나 기타 로그인 메소드 연동

예시
image

@mjshin82
Copy link
Author

mjshin82 commented Oct 7, 2019

리스팅

  • 추후 다양한 NFT를 리스팅 할 예정입니다.
  • 우선은 Knights Story의 아이템만을 리스팅 합니다.
  • 기본적으로 판매중인것만 리스팅합니다.

백엔드 이슈

  • 데이터는 체인에서 읽어옵니다.
  • 너무 느릴수 있기 때문에 캐싱이 필요합니다.
  • 캐싱은 NFT의 mint와 burn을 기준으로 현재 체인상의 전체 nft목록과, chain account당 nft목록을 캐싱합니다.
  • 백엔드는 부담스럽다면 저희가 개발할 수 있습니다.

검색 기능

  • 필터가 필요합니다.
  • 처음 버전은 저희 게임 전용이기 때문에, 저희 게임에 맞춰진 데이터로 필터링이 있으면 될것 같습니다.
  • 아이템 종류별/ 등급별/ 가격별 정렬이 있으면 좋습니다.

예시:
image
image

@mjshin82
Copy link
Author

mjshin82 commented Oct 7, 2019

디테일 뷰

  • 아이템 상세 정보를 표시합니다.
  • 상품 등록/ 구매가 가능해야 합니다.
  • 세부 스탯은 NFT의 메타 정보를 읽어와서 표시합니다.

스마트 컨트랙 개발 (상품 등록/ 구매)

  • 매물 등록 및 구매를 위한 스마트 컨트랙 개발이 필요합니다.
  • OpenSea가 제공하는 Offer기능, Auction기능은 필요 없습니다.
  • 가장 간단한 등록/ 취소/ 구매만 있으면 됩니다.

상품 정보

{ 
   "image":"http://121.168.149.101:8080/api/v1/nft/svg/711/120930052/2/3.svg",
   "name":"Bone Ring",
   "attributes":[ 
      { 
         "trait_type":"grade",
         "value":"rare"
      },
      { 
         "display_type":"number",
         "trait_type":"score",
         "value":85
      },
      { 
         "display_type":"number",
         "trait_type":"hp",
         "value":37
      },
      { 
         "display_type":"number",
         "trait_type":"attack",
         "value":108
      },
      { 
         "display_type":"number",
         "trait_type":"luck",
         "value":36
      }
   ]
}

메타 데이터 관련

  • 데이터 구조: OpenSea와 호환되게 작업 하려 합니다. (https://docs.opensea.io/docs/2-adding-metadata)
  • 캐싱: NFT토큰이 캐싱될 때 같이 캐싱합니다.
  • 특정 토큰(아이템에) 대해 수동 재캐싱 기능이 필요합니다.
  • 캐시는 일정 기간 주기를 가집니다 (예, 10분)
  • 이후 해당 토큰을 조회하게 되면 다시 캐시 됩니다.
  • 조회 요청이 없다면 자동으로 다시 캐싱되지 않습니다.

프론트 예시:
image
image

@mjshin82
Copy link
Author

mjshin82 commented Oct 7, 2019

기타 페이지

  • 내가 가진 아이템들만 리스팅되는 페이지

@mjshin82
Copy link
Author

mjshin82 commented Oct 7, 2019

선호 개발환경

  • 백엔드 Java/ NodeJS
  • 프론트엔드 ReactJS
  • DB: MySQL
  • 캐시: Redis

UI디자인

  • 시멘틱 UI 템플릿으로 개발 부탁드립니다.
  • https://react.semantic-ui.com
  • 그외 비슷한 다른 템플릿도 상관 없습니다.

모바일/ PC

  • 모바일이 메인입니다.
  • PC버전의 웹에서도 나쁘지 않게 표시되면 좋겠습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant