[Project] 토큰 인센티브 기반 커뮤니티 프로젝트

dhkim·2022년 8월 30일
1

BEB 프로젝트 #2 회고

  • NFT와 코인 정보를 공유하고 추천을 받으면 토큰을 보상으로 주는 토큰 인센티브 기반 커뮤니티 사이트입니다.
  • 게시글을 올리거나 추천 10개를 받으면 토큰 보상을 받고 교환도 가능하며, 해당 토큰으로 발행된 NFT를 구매할 수 있습니다.

프로젝트 팀 구성 & 역할 분담

프로젝트 기간 (8/17 ~ 8/29)
인원수 3명 -> 인원 수 부족으로 각자 일정에 맞게 풀스택 역할을 수행

- Front-end

로그인 및 회원가입 페이지 구현
MyPage 안에 탭으로 내정보, 내가 쓴 글, 토큰교환&보유, NFT 상점, NFT 발행 페이지 구현
커뮤니티 게시글 리스트, 상세 조회, 수정페이지 구현
게시글 상세 조회에서 댓글 구현

- Back-end

mysql db 스키마 설계 및 연동
swagger API를 활용한 API docs 작성
sequelize로 db models 개발
각 기능 별로 API 구현

- Smart contract

사용자 지갑 생성
서버 계정으로 ERC-20/721 컨트랙트 배포
ETH Faucet 받기
ERC-20 토큰 보상
ERC-20 토큰 전송
ERC-721 발행
ERC-20으로 ERC-721 구매 구현
Daemon 사용하여 트랙잭션 모니터링

개발 내용 & 세부 기능

  • 로그인 및 회원가입 시 jwt 토큰을 이용하고 헤더에서 불러와서 검증 가능하도록 개발
  • 회원가입 시 지갑 생성
  • 첫 서버 실행 시에 관리자 계정 생성해주고 ERC-20/721 컨트랙트 배포
  • 게시글 작성, 조회, 수정, 삭제, 추천 기능
  • 게시글 작성 시, 5개의 KNS 토큰 보상 지급
  • 게시글 추천 수 10개 도달 시, 10개의 KNS 토큰 보상 지급
  • 댓글 등록 기능
  • 마이페이지에서 내정보, 내가 쓴 글, 토큰/NFT 정보 조회 기능
  • 마이페이지에서 이더 faucet 및 토큰 전송 기능
  • 마이페이지에서 NFT 발행 기능
  • 마이페이지에서 발행한 NFT를 조회하고 토큰으로 구매하는 기능
  • Daemon 툴을 사용하여 트랙잭션 모니터링 구현

내가 맡은 포지션 & 스택

Position: Back-end, Front-end, Smart contract

Stack : NODE JS, React, Express, Mysql, Sequilize, Solidity, Ganache, Github, Swagger

Contribution :

1) mysql db 스키마 설계 및 연동
2) swagger API를 활용한 API docs 작성
3) sequelize로 db models 생성
4) 게시글 관련 API 작성
5) 댓글 관련 API 작성
6) 토큰 관련 API 작성
7) 사용자 관련 API 작성
8) nft 관련 API 작성
9) jwt 토큰 헤더에 적용 및 불러오기 구현
10) 게시글 관련 페이지 구현
11) 댓글 등록 구현
12) 토큰 보상 기능 구현
13) 토큰 전송 기능 구현
14) 이더 faucet 기능 구현
15) 마이페이지에서 데이터 가져오는 부분 구현

Wireframe

DB 스키마

데모

1) 로그인 / 회원가입 페이지
처음 실행 시에 admin 관리자 계정은 자동 생성해주고, ERC-20/721 컨트랙트 배포

2-1) 커뮤니티 게시글 리스트 페이지 : 로그인 시 첫 화면

2-2) 게시글 등록 페이지
제목 및 내용을 입력하고 KNS 토큰 5개 보상 지급


마이페이지에서 내정보 -> 게시글이 추천 10개를 달성하면 KNS 토큰 10개 보상 지급

마이페이지에서 내정보 -> 기존에 글 작성 시, 받은 5개 토큰과 함께 15개 토큰 보유량 확인

2-3) 게시글 상세 조회 페이지
상세 조회 화면에서 추천, 수정, 삭제가 가능하고 댓글 등록 및 확인이 가능

3-1) 마이페이지 정보는 탭으로 구성했고 내정보 상세 확인 가능

3-2) 마이페이지에서 내가 쓴 글 확인 가능

3-3) 마이페이지에서 토큰교환&보유 확인이 가능하고, 구입한 NFT 목록을 보여준다.

  • 이더받기를 통해 전송 시 필요한 이더 가스비 획득
  • 받을사람 지갑주소와 토큰 수량을 입력해서 토큰 전송

3-4) NFT 상점은 발행된 NFT 리스트를 확인하고 NFTBuy를 통해 구매 가능

3-5) NFT 발행 탭에서 NFT 발행이 가능

개발 회고(KPT 방식)

Keep :

Problem :

Try :

깃허브 주소

Github : https://github.com/Dahankim89/beb-05-KNS

profile
Blockchain developer

0개의 댓글