ysheokorea / BEB-05-gigs

BEB-05-final-01

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project Title

๐Ÿง‘โ€๐ŸŒพ๐Ÿ‘ทGigtopia๐Ÿ‘ฉโ€๐Ÿณ๐Ÿง‘โ€๐Ÿ”ง


1. Introduction

Gigtopia(as Platform)๋Š”

๊ธฑ ์›Œ์ปค(Gig Worker)์™€ ๊ณ ์šฉ์ฃผ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ”Œ๋žซํผ์ด๋ฉฐ, ๊ณ ์šฉ์ฃผ๋Š” ์ž์‹ ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๋…ธ๋™๋ ฅ์„ ํ•€ํฌ์ธํŠธ๋กœ ๊ณ ์šฉํ•˜์—ฌ ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Gigtopia(as DAO)๋Š”

  1. Gig Worker๋ฅผ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค.

    ์ตœ๊ทผ ๊ตญ๋‚ด์™ธ์—์„œ ๊ธฑ ์ด์ฝ”๋…ธ๋ฏธ(Gig Economy)๊ฐ€ ์ƒˆ๋กœ์šด ์ผ์˜ ํ˜•ํƒœ๋กœ ๋– ์˜ค๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Gig์ด๋ผ๋Š” ๋‹จ์–ด๋Š” ์ผ์‹œ์ ์ธ ์ผ์„ ๋œปํ•˜๋ฉฐ, ๊ธฑ ์›Œ์ปค๋Š” ํ•„์š”ํ•œ ๊ณณ์— ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ์˜ ๋…ธ๋™๋ ฅ์„ ์ œ๊ณตํ•˜๋Š” ์ด๋“ค์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๊ธฑ ์›Œ์ปค๋Š” ์ž์‹ ์ด ์›ํ•  ๋•Œ ์›ํ•˜๋Š” ๋งŒํผ ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋™์ž์˜ ์ž์œจ์„ฑ์ด ๋†’์•„์ง„ ๋งŽํผ ์‚ถ์˜ ์งˆ๋„ ์˜ฌ๋ผ๊ฐˆ ๊ฒƒ ๊ฐ™์ง€๋งŒ ํ˜„์‹ค์€ ๊ผญ ๊ทธ๋ ‡์ง€๋งŒ์€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฑ ์›Œ์ปค๋Š” ์ •๊ทœ์ง์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณดํ—˜, ์ƒ์—ฌ๊ธˆ ๋“ฑ์˜ ๊ฐ์ข… ๋ณต์ง€ํ˜œํƒ์„ ๋ˆ„๋ฆฌ๊ธฐ ํž˜๋“ญ๋‹ˆ๋‹ค. ๊ธฑ ํ† ํ”ผ์•„๋Š” ๊ธฑ ์›Œ์ปค์˜ ๊ธฑ ์›Œ์ปค์— ์˜ํ•œ ๊ธฑ ์›Œ์ปค๋ฅผ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

  2. ๊ธฑ ์›Œ์ปค์˜ ์šธํƒ€๋ฆฌ๊ฐ€ ๋˜์–ด์ค๋‹ˆ๋‹ค.

    ๊ธฐ์กด์˜ ๊ธฑ ์ด์ฝ”๋…ธ๋ฏธ์˜ ๋ฌธ์ œ์  ์ค‘ ํ•˜๋‚˜๋Š” ๊ธฑ ์›Œ์ปค์˜ ์ž…์žฅ์„ ๋Œ€๋ณ€ํ•  ์ง‘๋‹จ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ธฑ ํ† ํ”ผ์•„๋Š” ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•˜์—ฌ ์˜์‚ฌ๊ฒฐ์ •์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฑ ์›Œ์ปค์˜ ์†Œ์ค‘ํ•œ ์˜๊ฒฌ์„ ๊ตฌ์„ฑ์› ๋ชจ๋‘๊ฐ€ ๊ณต์œ ํ•˜๊ณ , ์ด ์˜๊ฒฌ์€ ๋ธ”๋ก์ฒด์ธ ๊ธฐ์ˆ ๋กœ ๊ตฌํ˜„๋œ ๊ณต์ •ํ•˜๊ณ  ํˆฌ๋ช…ํ•œ ํˆฌํ‘œ ์‹œ์Šคํ…œ์„ ๊ฑฐ์ณ ๊ธฑ ํ† ํ”ผ์•„์˜ ์šด์˜์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.

  3. ๊ธฑ ์›Œ์ปค์™€ ํ•จ๊ป˜ ์„ฑ์žฅํ•ฉ๋‹ˆ๋‹ค.

    ๊ธฑ ํ† ํ”ผ์•„๋Š” ์„ฑ์ˆ™ํ•œ DAO๋กœ ๊ฑฐ๋“ญ๋‚˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๊ธฑ ์›Œ์ปค๋Š” ๋‹จ์ˆœํ•œ ๋…ธ๋™๋ ฅ์ด ์•„๋‹Œ DAO์˜ ๊ตฌ์„ฑ์›์ด๋ฉฐ, ํ•œ ๋ช… ํ•œ ๋ช…์ด ์ง‘๋‹จ์˜ ์ฃผ์ธ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ์˜ ์„ฑ์žฅ์€ ์ง‘๋‹จ์˜ ์„ฑ์žฅ์œผ๋กœ ์ด์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ธฑ ์ด์ฝ”๋…ธ๋ฏธ์™€ ํ† ํฐ ์ด์ฝ”๋…ธ๋ฏธ(Token Economy)์˜ ๊ฒฐํ•ฉ์€ ๊ธฑ ์›Œ์ปค์—๊ฒŒ ์ƒํƒœ๊ณ„ ํ™•์žฅ์„ ์œ„ํ•œ ๋™๊ธฐ๋ฅผ ๋ถ€์—ฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. DAO์˜ ์„ฑ์žฅ์— ๊พธ์ค€ํžˆ ๊ธฐ์—ฌํ•œ ๊ธฑ ์›Œ์ปค์—๊ฒŒ๋Š” ๋ณด๋‹ค ์ ๊ทน์ ์œผ๋กœ ์˜์‚ฌ๊ฒฐ์ •์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.


2. Built with

  • Front-end
    • ReactJs
    • MUI React UI tools
  • Back-end
    • Express.js
    • Mongo Database
  • Smart Contarct
    • ERC-20, ERC-721 Token
    • Openzeppeling Governor Contract
    • Hardhat

3. Quick Start

  • Front-end
    1. Install packages

      npm install
    2. Set smart contract addresses & ABIs

  • Back-end
    1. Install packages

      npm install
    2. Set .env file

      .env.example
      
      MONGO_URL = mongodb+srv://USERNAME:USERKEY@cluster0.n5rc5ym.mongodb.net/?retryWrites=true&w=majority
      RPC_URL = https://ropsten.infura.io/v3/APIKEY
      ACCESS_SECRET = gigtopia
      HTTPS_PORT = 4000
      ADMIN_WALLET_ACOUNT = 0xd...
      ADMIN_WALLET_PRIVATE_KEY =
      MODERATOR_URI = https://ipfs.io/ipfs/bafybeifanfpb7iwdhjveyccm4vv2bsj2omh
      
  • Smart Contract
    1. Install packages

      npm install
      
    2. Deploy contracts

      npx hardhat deploy
      

      gig token, gig score token, moderator nft, governor ์ˆœ์œผ๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

    3. Run Scripst

      ๊ฑฐ๋ฒ„๋„ˆ ์ปจํŠธ๋ž™ํŠธ์—์„œ ์‚ฌ์šฉํ•  ํƒ€๊ฒŸ ์ปจํŠธ๋ž™ํŠธ์™€ ํƒ€๊ฒŸ ์ปจํŠธ๋ž™ํŠธ์˜ ๋ฉ”์„œ๋“œ, ์ธ์ž ๋“ฑ์€ helper-hardhat-config.js ์—์„œ ์„ค์ •.

      • ๊ฑฐ๋ฒ„๋„ˆ propose ์‹คํ–‰
        npx hardhat run script/propose.js
        
      • ๊ฑฐ๋ฒ„๋„ˆ queue ์™€ excute ์‹คํ–‰
        npx hardhat run script/queue-and-excute.js
        
      • ์ปค๋ฒ„๋„ˆ vote ์‹คํ–‰
        npx hardhat run script/vote.js
        

4. Features

Order

  1. client๋Š” Find Worker ํŽ˜์ด์ง€์—์„œ worker๋ฅผ ์„ ํƒํ•˜์—ฌ ์ง์ ‘ ์˜๋ขฐํ•˜๊ฑฐ๋‚˜, Find Order ํŽ˜์ด์ง€์—์„œ ์˜๋ขฐ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜๋ขฐ ์ž‘์„ฑ ํ›„, worker๊ฐ€ ์˜ฌ๋ฆฐ ์ œ์•ˆ ์ค‘ ๋งˆ์Œ์— ๋“œ๋Š” ์ œ์•ˆ์„ ์„ ํƒํ•˜์—ฌ ์˜๋ขฐ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. worker๋Š” Find Order ํŽ˜์ด์ง€์—์„œ order๋ฅผ ์„ ํƒํ•˜์—ฌ ๊ธฐ๊ฐ„๊ณผ ์š”๊ตฌ ๋ณด์ƒ์„ ์„ค์ •ํ›„ client์—๊ฒŒ ์ œ์•ˆ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, MyPage์—์„œ ์ƒํƒœ๋ฅผ pending์œผ๋กœ ์ „ํ™˜ํ•˜๋ฉด ํ”„๋กœํ•„์ด Find Worker์— ๋…ธ์ถœ๋˜์–ด client๊ฐ€ ์ง์ ‘ ์˜๋ขฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. pending ์ƒํƒœ๋กœ ์ „ํ™˜์—๋Š” GigToken์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค. ์ด ํ›„ MyPa-ge์—์„œ client๊ฐ€ ์ง์ ‘ ๋ณด๋‚ธ ์˜๋ขฐ๋ฅผ ํ™•์ธ ํ›„ ์ˆ˜๋ฝํ•˜์—ฌ ์˜๋ขฐ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์œ„์˜ ๊ณผ์ •์„ ํ†ตํ•˜์—ฌ ์˜๋ขฐ๊ฐ€ ์‹œ์ž‘๋˜๋ฉด client์™€ worker๋Š” tap์„ ํ†ตํ•˜์—ฌ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ์˜๋ขฐ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด client๋Š” ์›Œ์ปค์—๊ฒŒ ์‚ฌ์ „์— ํ•ฉ์˜๋œ ๋ณด์ƒ GIgToken์„ ์ง€๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ worker๋Š” ์†Œ์ •์˜ GIgScore๋ฅผ ํš๋“ํ•ฉ๋‹ˆ๋‹ค.
  5. clinet๋Š” worker๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. client์˜ ํ‰๊ฐ€๊ฐ€ ๋†’์œผ๋ฉด GigScore๋ฅผ ํš๋“ํ•˜๊ณ , ํ‰๊ฐ€๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๋‚ฎ๋‹ค๋ฉด GigScore๊ฐ€ ์ฐจ๊ฐ๋ฉ๋‹ˆ๋‹ค. worker๊ฐ€ client์˜ ํ‰๊ฐ€์— ๋ถˆ๋ณตํ•  ๊ฒฝ์šฐ ์ด์˜๋ฅผ ์ œ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(Court ์ฐธ์กฐ).
  6. worker๋Š” ํ•ด๋‹น ์˜๋ขฐ์— ๋Œ€ํ•œ ํšŒ๊ณ ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ GIgToken์„ ์ง€๊ธ‰ ๋ฐ›์Šต๋‹ˆ๋‹ค.

Court

  1. ์˜๋ขฐ ์™„๋ฃŒ ํ›„ client์˜ ํ‰๊ฐ€์— ๋ถˆ๋ณตํ•œ๋‹ค๋ฉด worker๋Š” ์ด์˜๋ฅผ ์ œ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. moderator(์ถ”ํ›„ ์„ค๋ช…)๋Š” Governance ํŽ˜์ด์ง€์—์„œ worker๊ฐ€ ์˜ฌ๋ฆฐ ์ด์˜๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. moderator๋Š” ์ด์˜๋ฅผ ์‹ฌ์‚ฌํ•˜์—ฌ GigScore๋ฅผ ํš๋“ํ•ฉ๋‹ˆ๋‹ค.
  4. ๋‹ค์ˆ˜์˜ moderator๊ฐ€ ๋™์˜ํ•˜์—ฌ ์ด์˜๊ฐ€ ํ•ฉ๋‹นํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋  ๊ฒฝ์šฐ Client๋Š” ํ‰๊ฐ€๋ฅผ ์ •์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Vote

  1. client๋Š” ์ผ์ •๋Ÿ‰ ์ด์ƒ์˜ GigScore๋ฅผ ์‚ฌ์šฉํ•ด์„œ moderator ๊ถŒํ•œ(NFT)์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. moderator NFT๋Š” ๊ณ„์ •๋‹น ํ•˜๋‚˜๋งŒ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. moderator๋Š” proposal์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๋‹ค์ˆ˜์˜ worker๊ฐ€ ๋™์˜ํ•œ proposal์€ ๊ฑฐ๋ฒ„๋„ˆ ์ปจํŠธ๋ž™ํŠธ์˜ propose ํ•จ์ˆ˜๋ฅผ ํ†ตํ•˜์—ฌ voting์œผ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.
  4. ํˆฌํ‘œ๋Š” moderator๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ, moderator NFT ํ•˜๋‚˜๋‹น ํ•œ ํ‘œ, ์ฆ‰ ํ•œ ๊ณ„์ •์€ ํ•œ ํ‘œ๋งŒ ํ–‰์‚ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ํ‘œ์˜ ๊ฐ€์น˜(weight)๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ํˆฌํ‘œ ํ›„ GigScore๊ฐ€ ์ง€๊ธ‰๋ฉ๋‹ˆ๋‹ค.
  5. ํˆฌํ‘œ๊ฐ€ ์ •์กฑ์ˆ˜๋ฅผ ๋„˜์—ˆ๊ณ  ๋‹ค์ˆ˜๊ฐ€ ๋™์˜ํ–ˆ๋‹ค๋ฉด ํ•ด๋‹น ์ œ์•ˆ์€ ์„ฑ๊ณต์œผ๋กœ ์ „์ฃผ๋˜์–ด ๊ฑฐ๋ฒ„๋„ˆ ์ปจํŠธ๋ž™ํŠธ์˜ excute ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค
  6. ์ •์กฑ์ˆ˜๋ฅผ ๋„˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ๋‹ค์ˆ˜๊ฐ€ ๋™์˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํˆฌํ‘œ๋Š” ์‹คํŒจํ•˜๊ฒŒ ๋˜๊ณ , ์ œ์•ˆ์ž์˜ GigScore๊ฐ€ ์ฐจ๊ฐ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ œ์•ˆ์€ ์‹ ์ค‘ํ•˜๊ฒŒ ์˜ฌ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

tokenEconomy


5. RESTFul API and other Documents

https://vast-shoemaker-7d4.notion.site/Gigtopia-APIs-470fca6294834f43b1de54cd83c84e25


6. Team

๊น€์Šน์ฃผ

  • ๋‹ด๋‹น
  • Github

๋ฐ•์ธ๊ท 

  • ๋‹ด๋‹น
  • Github

์˜ค์ •ํ—Œ

  • ๋‹ด๋‹น
  • Github

์ดํšจ์ •

  • ๋‹ด๋‹น
  • Github

About

BEB-05-final-01


Languages

Language:JavaScript 93.0%Language:Solidity 6.0%Language:CSS 0.6%Language:HTML 0.4%Language:Shell 0.1%