- 웹툰을 좋아하는 세명이 팀이 되어, 인센티브 기반 웹툰 커뮤니티 개발 계획 시작
- 웹툰 최강자전 리그 中 결승전의 시점을 배경으로 삼고 있음
- 회원가입, 로그인, 마이페이지
- 좋아하는 웹툰에 투표
- 승리를 예상하는 웹툰에 배팅
- 결승전 웹툰에 관해 논의할 수 있는 채팅
- 좋아하는 웹툰 작가님의 그림을 NFT로 민팅
- 토큰 보상 : 배팅에서 승리, 회원가입, 투표, 채팅
- 토큰 소각 : 배팅에서 패배, 좋아하는 웹툰 작가님의 그림을 NFT로 민팅
$ mysql -u root -p
cli 사용시
$ npm install -g ganache-cli
$ ganache-cli -d --port 7545
/client $ npm start
/server $ npm start
server / abi / Abi, Abi721 : ERC20과 ERC721의 스마트컨트랙트를 ABI 형식으로 치환해 객체형식으로 저장
. / controller / index.js : 각종 라우터 기능 포함
. / model / CreateDatabase : DB와 테이블을 생성할 수 있는 파일. 서버쪽을 노드로 돌리면 자동으로 실행
. / ... / getNftData : DB에 저장된 사용자의 NFT 데이터 BE2FE 연결
. / ... / GetSignUpData : 회원가입 할때 사용, 회원가입시 각종 에러 리턴
. / services / CreateWallet : web3를 이용해서 지갑생성
. / ... / Login : 로그인시 사용 nft 테이블과 조인해서 nft데이터를 함께 리턴
. / ... / sendToken : 서버계정에서 타 지갑으로 ERC20 토큰 전송
. / ... / sendTokenU2S : 유저지갑에서 서버지갑으로 ERC20 토큰 전송
. / ... / tokenUse/Bet : 승리를 예상하는 팀에게 배팅할 수 있게 하는 기능. input에 값을 넣고 배팅버튼을 누르면 개인 지갑에 있던 토큰을 서버로 전송
. / ... / ... / Comment : 응원하는 사람들끼리 실시간 채팅을 하는 기능. 채팅을 치면 데이터베이스에 저장이 되고 데이터베이스에 있는 내용을 불러옴
. / ... / ... / faucet : 연결된 서버계정에서 사용자에게 전송. BE2FE 연결
. / ... / ... / minting : Nft 메타데이터 DB에 저장. user 의 지갑으로 erc20 토큰 지불 후 민팅
. / ... / ... / vote : 원하는 팀에 투표 및 투표집계를 위해 DB에 저장
. / ... / ... / WinBet : 배팅 승리시 1.8배의 토큰을 지급, 무승부면 배팅 금액 그대로 반환, 패배시 토큰 소각
/ client / src / App :각 페이지 별로 라우팅
. / components / Hedaer : 페이지 상단 고정되어있는 상단바
. / ... / ImgSlider : 메인페이지 중단에 있는 이미지 슬라이드
. / ... / Signup : 회원가입 팝업창
. / Pages / League : 웹툰끼리 투표해서 순위를 가리는 페이지
. / ... / MainPage : 웹페이지 접속시 나타나는 첫 페이지
. / ... / Mint : 팬아트를 민팅하는 페이지
. / ... / MyPage : 보유하고 있는 토큰 nft를 확인 할 수 있는 마이페이지
. / ... / SignIn : 로그인 페이지 , 회원가입 가능
. / ... / league_sub / RoundOf2 : 웹툰 대항전 결승
. / reducers / index : 리덕스 저장소
. / ... / reduce : 리덕스 제어
. / resources / App.css : 모든 css 제어