Skip to content

taebong1012/Don-jo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,447 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DONJO - 블둝체인 기반 후원 및 거래 μ„œλΉ„μŠ€

πŸ“…Β ν”„λ‘œμ νŠΈ κΈ°κ°„

2023λ…„ 02μ›” 20일 μ›”μš”μΌ - 2023λ…„ 04μ›” 07일 κΈˆμš”μΌ (총 κΈ°κ°„ : 7μ£Ό)

πŸŒŸΒ ν”„λ‘œμ νŠΈ κ°œμš”

  1. Summary(ν”„λ‘œμ νŠΈ μ†Œκ°œ 및 μš”μ•½)

    • DONJOλŠ” 블둝체인 기반의 μ°½μž‘μž 후원 및 μ°½μž‘λ¬Ό 거래 μ„œλΉ„μŠ€ μž…λ‹ˆλ‹€.
    • μ°½μž‘μžκ°€ 올린 μ°½μž‘λ¬Όμ΄ 도움이 λ˜μ—ˆλ‹€λ©΄ 후원을 톡해 감사 ν‘œμ‹œλ₯Ό μ „ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • μ°½μž‘λ¬Όμ„ ν•„μš”λ‘œ ν•˜λŠ” μ‚¬λžŒλ“€μ—κ²Œ νŒλ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • ν›„μ›μžλ“€λ‘œλΆ€ν„° μ°½μž‘ ν™œλ™μ„ μœ„ν•œ λͺ¨κΈˆμ„ 받을 수 μžˆμŠ΅λ‹ˆλ‹€.
  2. Problem(κΈ°μ‘΄ μ‹œμŠ€ν…œμ˜ 문제점)

    • velog, github page, tistory λ“± λ‹€μ–‘ν•œ λΈ”λ‘œκ·Έ ν”Œλž«νΌμ—μ„œλŠ” 후원 μ„œλΉ„μŠ€κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
    • λ˜ν•œ, λΈ”λ‘œκ·ΈλŠ” 방문자 수만으둜 μˆ˜μ΅μ„ μ–»κΈ° μ–΄λ €μš΄ ꡬ쑰이기 λ•Œλ¬Έμ— μ°½μž‘μžκ°€ 직접 μ• λ“œν•κ³Ό 같은 κ΄‘κ³  λΆ€μ°© μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•΄μ•Όν•˜λ©°, μ΄λŠ” 방문자 μˆ˜μ— λΉ„λ‘€ν•œ μˆ˜μ΅μ„ μ–»κΈ°κ°€ νž˜λ“­λ‹ˆλ‹€.
    • 아프리카TV, νŠΈμœ„μΉ˜, 유튜브 λ“± 후원 μ„œλΉ„μŠ€κ°€ ν¬ν•¨λ˜μ–΄ μžˆλŠ” λŒ€ν˜• ν”Œλž«νΌμ—μ„œλŠ” 높은 수수료λ₯Ό μ§€λΆˆν•΄μ•Ό ν•©λ‹ˆλ‹€.
  3. Solution(DONJO μ„œλΉ„μŠ€μ˜ ν•΄κ²° λ°©μ•ˆ)

    • μ°½μž‘ ν™œλ™μ„ ν•˜λŠ” 곡간과 후원을 받을 수 μžˆλŠ” 곡간을 λΆ„λ¦¬ν•©λ‹ˆλ‹€.
    • λ‹€μ–‘ν•œ ν”Œλž«νΌμ„ 톡해 받은 후원 내역을 ν†΅ν•©μ μœΌλ‘œ 관리할 수 μžˆλŠ” μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
    • λŒ€ν˜• ν”Œλž«νΌμ— λΉ„ν•΄ 적은 수수료둜 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  4. Performance(μ‹œμŠ€ν…œ μ„±κ³Ό 및 κΈ°λŒ€νš¨κ³Ό)

    • μ°½μž‘λ¬Όμ— λŒ€ν•œ 후원, 거래 λ“± 기둝을 ν†΅ν•©μ μœΌλ‘œ κ΄€λ¦¬ν•˜λ©°, λͺ¨λ“  거래 과정이 투λͺ…ν•˜κ²Œ μ œκ³΅λ©λ‹ˆλ‹€.
    • μ°½μž‘μž μž…μž₯μ—μ„œ μ‹œκ°„κ³Ό λΉ„μš©μ„ μ ˆμ•½ν•˜λ©΄μ„œ 더 λ§Žμ€ μ°½μž‘λ¬Όμ„ μ œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • 블둝체인 기반의 거래λ₯Ό 톡해 투λͺ…μ„±κ³Ό 신뒰성을 보μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • 수수료 절감으둜 μ°½μž‘λ¬Ό μ œμž‘μžλ“€μ—κ²Œ 더 λ§Žμ€ μˆ˜μ΅μ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

βœ¨Β ν”„λ‘œμ νŠΈ 핡심 κΈ°λŠ₯

  1. μ‰¬μš΄ 톡합 관리
    • 개인 λΈ”λ‘œκ·Έ, μ‚¬μ΄νŠΈ 등에 μ°½μž‘μžμ˜ 개인 νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜λŠ” λ²„νŠΌμ„ μ œκ³΅ν•©λ‹ˆλ‹€.
    • SNS에 μ—…λ‘œλ“œ ν•  수 μžˆλŠ” 개인 QRμ½”λ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  2. 투λͺ…ν•œ 거래
    • 블둝체인을 ν™œμš©μ„ 톡해 후원 내역을 κ΄€λ¦¬ν•˜κ³  후원과정을 λͺ¨λ‘μ—κ²Œ μ œκ³΅ν•¨μœΌλ‘œ 투λͺ…μ„±κ³Ό 신뒰성을 보μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  3. λŒ€μ‹œλ³΄λ“œ 톡계 관리
    • 개인 κ³„μ •μœΌλ‘œ 후원받은 내역을 λŒ€μ‹œλ³΄λ“œμ—μ„œ ν†΅ν•©μ μœΌλ‘œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • 총 ν›„μ›μž, ν›„μ›κΈˆ, μˆ˜μ΅λ“± λ‹€μ–‘ν•œ 정보λ₯Ό ν•œ λˆˆμ— 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • μ°½μž‘μž 개인 νŽ˜μ΄μ§€λ₯Ό ν…Œλ§ˆ 색상, 후원 이λͺ¨μ§€, κΈˆμ•‘ 섀정등을 톡해 μ»€μŠ€ν…€ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ§‘πŸ»β€πŸ’»Β νŒ€ ꡬ성

  • λ°±μ—”λ“œ
    • 이재욱 - νŒ€μž₯, API 섀계 및 개발, 슀마트 μ»¨νŠΈλž™νŠΈ μž‘μ„± 및 배포
    • κ°•νƒœμ„  - API 섀계 및 개발, 블둝체인 후원 및 WalletConnect μ—°κ²°
    • 이유영 - API 섀계 및 개발, CI/CD
  • ν”„λ‘ νŠΈμ—”λ“œ
    • κΉ€ν˜„μˆ˜ - νšŒμ›κ°€μž… 및 둜그인 개발, 블둝체인 후원 및 둜그인
    • μ†‘ν˜„μ£Ό - λŒ€μ‹œλ³΄λ“œ 및 인트둜 개발, λ°˜μ‘ν˜• UI κ΅¬ν˜„, λ””μžμΈ 섀계
    • μ•ˆνƒœν˜„ - 개인 νŽ˜μ΄μ§€ 개발, λ°˜μ‘ν˜• UI κ΅¬ν˜„, λ””μžμΈ 섀계

πŸ”¨Β μ£Όμš” 기술

Backend - Spring

  • IntelliJ IDE
  • Java 11.0.14
  • Springboot 2.7.7
  • Spring Data JPA 2.7.7
  • Spring Security 2.7.7
  • Spring Validation 2.7.7
  • Spring Web 2.7.7
  • QueryDSL 5.0.0
  • Spring Cloud 2.2.1
  • Swagger2 3.0.0
  • jjwt 0.11.5
  • caffeine 2.9.3
  • bucket4j 4.10.0
  • gson 2.10.1

Smart Contract

  • Solidity 0.8.18
  • web3j 4.9.4
  • web3js 1.8.2
  • truffle 4.6.17
  • ganache 2.7.0
  • geth 1.11.3
  • golang 1.20.2

CI/CD

  • AWS EC2
  • Jenkins
  • NGINX
  • SSL

Frontend

  • Visual Studio Code IDE
  • react 18.2.0
  • redux 4.2.1
  • react-redux 8.0.5
  • redux-persist 6.0.0
  • prop-types 15.8.1
  • styled-components 5.3.8
  • styled-reset 4.4.5
  • react-router-dom 6.8.2
  • react-toastify 9.1.2
  • react-responsive 9.0.2
  • react-qrcode-logo 2.9.0
  • emoji-picker-react 4.4.7
  • @uiw/react-md-editor 3.20.5
  • html-to-image 1.11.11
  • react-spinners 0.13.8

πŸ“Β μš”κ΅¬μ‚¬ν•­μ •μ˜μ„œ

μš”κ΅¬μ‚¬ν•­μ •μ˜μ„œ

πŸ’„Β λ””μžμΈ μ‹œμ•ˆ

μš”κ΅¬μ‚¬ν•­μ •μ˜μ„œ

πŸ”’Β ERD

μš”κ΅¬μ‚¬ν•­μ •μ˜μ„œ

πŸ“„ μ•„ν‚€ν…μ²˜ ꡬ성도

μ•„ν‚€ν…μ²˜ ꡬ성도

βš™οΈΒ ν”„λ‘œμ νŠΈ 파일 ꡬ쑰

Backend

.
β”œβ”€β”€ .gitignore
β”œβ”€β”€ build.gradle
β”œβ”€β”€ dockerfile
β”œβ”€β”€ gradlew
β”œβ”€β”€ gradlew.bat
β”œβ”€β”€ settings.gradle
└── src
    β”œβ”€β”€ main
    β”‚Β Β  β”œβ”€β”€ java
    β”‚Β Β  β”‚Β Β  └── com
    β”‚Β Β  β”‚Β Β      └── donjo
    β”‚Β Β  β”‚Β Β          └── backend
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ BackendApplication.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ aop
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── ControllerAspect.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ api
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ controller
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ FileController.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ItemController.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ MemberController.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PriceController.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SupportController.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ TestController.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  └── WishlistController.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ dto
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ item
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ request
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AddItemCond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── UpdateItemCond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── response
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ GetAllMyItemPayload.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ GetItemListPayload.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      └── ItemDetailPayload.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ member
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DonationSettingItem.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ LoginItem.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ MemberInfoItem.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ WishListItem.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ request
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ LoginMemberCond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ModifyMemberCond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── SignUpMemberCond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── response
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ FindMemberPayload.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ FindPageInfoPayload.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ FromMemberItem.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ LoginPayload.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ SocialItem.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ SupportItem.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      └── ToMemberItem.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ support
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ request
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AddReplyCond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AddSupportCond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── DonationSettingCond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β  └── response
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ FindSupportDetailPayload.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ FindSupportItem.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ FindSupportListPayload.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      β”œβ”€β”€ FindTop10Payload.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”‚Β Β      └── MemberItem.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  └── wishlist
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β      β”œβ”€β”€ request
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ AddWishlistCond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β      β”‚Β Β  └── UpdateWishlistCond.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β      └── response
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β          β”œβ”€β”€ GetWishlistsPayload.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β          └── WishlistDetailPayload.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── service
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ item
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”‚Β Β  β”œβ”€β”€ ItemService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”‚Β Β  └── ItemServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ member
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”‚Β Β  β”œβ”€β”€ MemberService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”‚Β Β  └── MemberServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ price
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”‚Β Β  β”œβ”€β”€ PriceService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”‚Β Β  └── PriceServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ s3
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”‚Β Β  └── S3Uploader.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ support
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”‚Β Β  β”œβ”€β”€ SupportService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”‚Β Β  └── SupportServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      └── wishlist
    β”‚Β Β  β”‚Β Β              β”‚Β Β          β”œβ”€β”€ WishlistService.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β          └── WishlistServiceImpl.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ config
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ CorsConfig.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ QueryDslConfig.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ RateLimitConfig.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SecurityConfig.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ SwaggerConfig.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ bucket
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  └── RateLimitFilter.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── jwt
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ JwtAccessDeniedHandler.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ JwtAuthenticationEntryPoint.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ JwtFilter.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ JwtSecurityConfig.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      └── TokenProvider.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ db
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ entity
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Authority.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DonationSetting.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Member.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Social.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  └── Support.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── repository
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ DonationSettingRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ MemberRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ MemberRepositorySupport.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ SupportRepository.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      └── SupportRepositorySupport.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ exception
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ BadRequestException.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ DuplicateDataException.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ DuplicateMemberException.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ NoContentException.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── UnAuthorizationException.java
    β”‚Β Β  β”‚Β Β              β”œβ”€β”€ solidity
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ Item
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ItemSol.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  └── ItemSolidity.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”œβ”€β”€ support
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SupportSol.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  β”‚Β Β  └── SupportSolidity.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β  └── wishlist
    β”‚Β Β  β”‚Β Β              β”‚Β Β      β”œβ”€β”€ WishlistSol.java
    β”‚Β Β  β”‚Β Β              β”‚Β Β      └── WishlistSolidity.java
    β”‚Β Β  β”‚Β Β              └── util
    β”‚Β Β  β”‚Β Β                  β”œβ”€β”€ ConvertUtil.java
    β”‚Β Β  β”‚Β Β                  └── Web3jUtil.java
    β”‚Β Β  └── resources
    β”‚Β Β      β”œβ”€β”€ application.yml
    β”‚Β Β      └── data.sql
    └── test
        └── java
            β”œβ”€β”€ com
            β”‚Β Β  └── donjo
            β”‚Β Β      └── backend
            β”‚Β Β          β”œβ”€β”€ api
            β”‚Β Β          β”‚Β Β  β”œβ”€β”€ controller
            β”‚Β Β          β”‚Β Β  β”‚Β Β  └── SupportControllerTest.java
            β”‚Β Β          β”‚Β Β  └── service
            β”‚Β Β          β”‚Β Β      β”œβ”€β”€ item
            β”‚Β Β          β”‚Β Β      β”‚Β Β  └── ItemServiceImplTest.java
            β”‚Β Β          β”‚Β Β      β”œβ”€β”€ support
            β”‚Β Β          β”‚Β Β      β”‚Β Β  └── SupportServiceImplTest.java
            β”‚Β Β          β”‚Β Β      └── wishlist
            β”‚Β Β          β”‚Β Β          └── WishlistServiceImplTest.java
            β”‚Β Β          β”œβ”€β”€ contract
            β”‚Β Β          β”‚Β Β  β”œβ”€β”€ ContractConnectionTest.java
            β”‚Β Β          β”‚Β Β  β”œβ”€β”€ ContractViewTest.java
            β”‚Β Β          β”‚Β Β  └── SignatureCheckTest.java
            β”‚Β Β          β”œβ”€β”€ contracts
            β”‚Β Β          β”‚Β Β  β”œβ”€β”€ ContractViewTest.java
            β”‚Β Β          β”‚Β Β  β”œβ”€β”€ ContractWriteTest.java
            β”‚Β Β          β”‚Β Β  β”œβ”€β”€ EC2ContractViewTest.java
            β”‚Β Β          β”‚Β Β  β”œβ”€β”€ ItemContractTest.java
            β”‚Β Β          β”‚Β Β  └── TransactionTest.java
            β”‚Β Β          β”œβ”€β”€ solidity
            β”‚Β Β          β”‚Β Β  β”œβ”€β”€ Item
            β”‚Β Β          β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ConnectTest.java
            β”‚Β Β          β”‚Β Β  β”‚Β Β  └── ItemSolidityTest.java
            β”‚Β Β          β”‚Β Β  └── wishlist
            β”‚Β Β          β”‚Β Β      └── WishlistSolSolidityTest.java
            β”‚Β Β          └── util
            β”‚Β Β              β”œβ”€β”€ ConvertUtilTest.java
            β”‚Β Β              └── Web3jUtilTest.java
            └── controller
                └── MemberControllerTest.java

Frontend

.
β”œβ”€β”€ don-jo-app
β”‚Β Β  β”œβ”€β”€ Dockerfile
β”‚Β Β  β”œβ”€β”€ node_modules
β”‚Β Β  β”œβ”€β”€ package-lock.json
β”‚Β Β  β”œβ”€β”€ package.json
β”‚Β Β  β”œβ”€β”€ public
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ favicon.ico
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ index.html
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ manifest.json
β”‚Β Β  β”‚Β Β  └── robots.txt
β”‚Β Β  └── src
β”‚Β Β      β”œβ”€β”€ App.js
β”‚Β Β      β”œβ”€β”€ AppRouter.js
β”‚Β Β      β”œβ”€β”€ api
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ file.js
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ items.js
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ member.js
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ price.js
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ support.js
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ utils
β”‚Β Β      β”‚Β Β  β”‚Β Β  └── index.js
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ wagmi
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ buyItem.js
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ donate.js
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ donateWishlist.js
β”‚Β Β      β”‚Β Β  β”‚Β Β  └── walletConnectSetting.js
β”‚Β Β      β”‚Β Β  └── wishlist.js
β”‚Β Β      β”œβ”€β”€ assets
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ fonts
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BlackHanSans.ttf
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DoHyeon.ttf
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Jua.ttf
β”‚Β Β      β”‚Β Β  β”‚Β Β  └── Sunflower.ttf
β”‚Β Β      β”‚Β Β  └── img
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ common
β”‚Β Β      β”‚Β Β      β”‚Β Β  β”œβ”€β”€ app-logo.svg
β”‚Β Β      β”‚Β Β      β”‚Β Β  β”œβ”€β”€ blockchain.jpg
β”‚Β Β      β”‚Β Β      β”‚Β Β  β”œβ”€β”€ default-profile.svg
β”‚Β Β      β”‚Β Β      β”‚Β Β  β”œβ”€β”€ home.png
β”‚Β Β      β”‚Β Β      β”‚Β Β  └── img-not-found.svg
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ dashboard
β”‚Β Β      β”‚Β Β      β”‚Β Β  β”œβ”€β”€ img-generate-button.jpg
β”‚Β Β      β”‚Β Β      β”‚Β Β  β”œβ”€β”€ img-generate-qrcode.jpg
β”‚Β Β      β”‚Β Β      β”‚Β Β  └── qr-logo.svg
β”‚Β Β      β”‚Β Β      └── intro
β”‚Β Β      β”‚Β Β          β”œβ”€β”€ undraw_button.svg
β”‚Β Β      β”‚Β Β          β”œβ”€β”€ undraw_ether.svg
β”‚Β Β      β”‚Β Β          β”œβ”€β”€ undraw_transaction.svg
β”‚Β Β      β”‚Β Β          └── undraw_transfer_money.svg
β”‚Β Β      β”œβ”€β”€ components
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ Common
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BasicButton
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BasicInput
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BasicLink
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BasicTextarea
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BasicTitle
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Footer
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Header
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  └── SelectBox
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Modal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AddItemModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AddWishlistModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ AskSignUpModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ BasicModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ContractModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ FullScreenModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ItemDetailModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PasswordCheckModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ PasswordSetModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  └── WishlistDetailModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ProfileImg
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ShowMoreButton
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SignUp
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  └── SignUpModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Template
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ WalletConnectLogin
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Login
β”‚Β Β      β”‚Β Β  β”‚Β Β  └── WishlistItem
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ DashBoard
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardAccount
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardButtons
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  └── GeneratorItem
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardCard
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardContent
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardCustomSelect
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardDonation
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DonationForm
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  └── DonationSupporter
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardEarning
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardGeneratorModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardHome
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardItems
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ItemsSettings
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── ListItem
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  └── ItemsSupporter
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardListItem
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardSupportList
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardTab
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashBoardWishlist
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ WishlistSettings
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  β”‚Β Β  └── DashboardWishlist
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”‚Β Β  └──WishlistSupporter
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashboardLoading
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DashboardQRModal
β”‚Β Β      β”‚Β Β  β”‚Β Β  └── NavBar
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ Intro
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ CurrentSupportRecent
β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DonJoTitleSvg
β”‚Β Β      β”‚Β Β  β”‚Β Β  └── IntroContent
β”‚Β Β      β”‚Β Β  └── Personal
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ ExternalLink
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ IntroductionEdit
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ PersonalContent
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ PersonalHome
β”‚Β Β      β”‚Β Β      β”‚Β Β  β”œβ”€β”€ HomeDonation
β”‚Β Β      β”‚Β Β      β”‚Β Β  β”œβ”€β”€ HomeRecentSupport
β”‚Β Β      β”‚Β Β      β”‚Β Β  β”‚Β Β  └── RecentSupportBlock
β”‚Β Β      β”‚Β Β      β”‚Β Β  └── HomeWishlist
β”‚Β Β      β”‚Β Β      β”‚Β Β   Β Β  └── WishlistCard
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ PersonalItems
β”‚Β Β      β”‚Β Β      β”‚Β Β  └── ItemsCard
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ PersonalTab
β”‚Β Β      β”‚Β Β      └── PersonalWishlist
β”‚Β Β      β”œβ”€β”€ contracts
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ ApplicationHandler.json
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ BasicDonation.json
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ ItemDonation.json
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ SupportHistory.json
β”‚Β Β      β”‚Β Β  └── WishlistDonation.json
β”‚Β Β      β”œβ”€β”€ data
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ dashboard.js
β”‚Β Β      β”‚Β Β  └── intro.js
β”‚Β Β      β”œβ”€β”€ hooks
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ useInput.js
β”‚Β Β      β”‚Β Β  └── useTabs.js
β”‚Β Β      β”œβ”€β”€ index.js
β”‚Β Β      β”œβ”€β”€ pages
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ DashBoard
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ Error
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ Intro
β”‚Β Β      β”‚Β Β  └── Personal
β”‚Β Β      β”œβ”€β”€ stores
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ donation
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ items
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ member
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ memberInfo
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ reducers.js
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ store.js
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ support
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ web3
β”‚Β Β      β”‚Β Β  └── wishlist
β”‚Β Β      β”œβ”€β”€ styles
β”‚Β Β      β”‚Β Β  └── GlobalStyles.js
β”‚Β Β      └── utils
β”‚Β Β          β”œβ”€β”€ calculateEth.js
β”‚Β Β          β”œβ”€β”€ connectWallet.js
β”‚Β Β          β”œβ”€β”€ getEarningDataByType.js
β”‚Β Β          β”œβ”€β”€ handleWalletChange.js
β”‚Β Β          β”œβ”€β”€ metamaskLogIn.js
β”‚Β Β          β”œβ”€β”€ sendToastMessage.js
β”‚Β Β          β”œβ”€β”€ transactionFunc
β”‚Β Β          β”‚Β Β  β”œβ”€β”€ buyItemDonation.js
β”‚Β Β          β”‚Β Β  β”œβ”€β”€ buyWishlistDonation.js
β”‚Β Β          β”‚Β Β  └── donation.js
β”‚Β Β          └── validation
β”‚Β Β              β”œβ”€β”€ checkItemValidation.js
β”‚Β Β              β”œβ”€β”€ checkSignUpValidation.js
β”‚Β Β              └── validator.js
└── don-jo.txt

πŸ—£Β ν˜‘μ—… ν™˜κ²½

  • Jira

    • ν”„λ‘œμ νŠΈ μŠ€ν”„λ¦°νŠΈλ₯Ό μ •ν•˜κ³  ν•œ 주의 κ³„νšλŒ€λ‘œ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
    • νŒ€μ›λ§ˆλ‹€ μ£Όκ°„ 40의 Story Pointλ₯Ό μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
  • Notion

    • 데일리 회의 슀크럼, μš”κ΅¬ 사항 μ •μ˜μ„œ, API λͺ…μ„Έμ„œλ“±μ„ λ¬Έμ„œν™”ν–ˆμŠ΅λ‹ˆλ‹€.
    • μ½”λ”© μ»¨λ²€μ…˜, κΉƒ μ»¨λ²€μ…˜ λ“± νŒ€μ›κ°„ 개발 κ·œμΉ™μ„ μ •μ˜ν–ˆμŠ΅λ‹ˆλ‹€.
  • Github

    • μ½”λ”© μ»¨λ²€μ…˜μ„ μ€€μˆ˜ν•˜λ©° ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
    • Pull Requestλ₯Ό μš”μ²­ν•˜κ³  νŒ€μ›λ“€κ³Ό μ½”λ“œλ¦¬λ·°λ₯Ό μ§„ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
  • Figma

    • μ›Ή νŽ˜μ΄μ§€μ˜ λ””μžμΈ μ™€μ΄μ–΄ν”„λ ˆμž„, μ‹œμ•ˆμ„ μ œμž‘ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
    • μ„œλΉ„μŠ€ ν”„λ‘œν† νƒ€μž…μ„ μ œμž‘ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

πŸ’ͺπŸ»Β μ„±μž₯ν•œ 점

  • 블둝체인 기술 이해도 ν–₯상
    • λΈ”λ‘μ²΄μΈμ˜ μž‘λ™ 방식, νŠΉμ§•, μž₯단점 등에 λŒ€ν•΄ ν•™μŠ΅ν•˜κ³  μ΄ν•΄ν•˜λŠ” μ‹œκ°„μ΄μ—ˆμŠ΅λ‹ˆλ‹€.
    • Solidity와 같은 계약 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό 닀루어 λ³Ό 수 μžˆλŠ” μ‹œκ°„μ΄μ—ˆμŠ΅λ‹ˆλ‹€.
  • νŒ€ ν˜‘μ—… λŠ₯λ ₯ 및 μ˜μ‚¬μ†Œν†΅ λŠ₯λ ₯ ν–₯상
    • 데일리 μŠ€ν¬λŸΌμ„ μ§„ν–‰ν•˜λ©° μ§„ν–‰ 상황과 이슈 등을 κ³΅μœ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
    • μ„œλ‘œμ˜ 역할을 μ΄ν•΄ν•˜κ³  쑴쀑 및 μˆ˜μš©ν•˜λŠ” 과정을 배울 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
    • μ˜ˆμƒμΉ˜ λͺ»ν•œ λ¬Έμ œλ‚˜ 기술적 μ œν•œ 상황에 ν•¨κ»˜ κ³ λ―Όν•˜κ³  해결책을 λ§Œλ“€μ–΄ μ™”μŠ΅λ‹ˆλ‹€.

πŸ™πŸ»Β μ•„μ‰¬μš΄ 점(κ°œμ„ ν•˜κ³  싢은 점)

  • ν›„μ›μž μ „μš© λŒ€μ‹œλ³΄λ“œ 제곡
    • ν›„μ›μžλŠ” μžμ‹ μ΄ ν›„μ›ν•œ ν”„λ‘œμ νŠΈμ˜ μ§„ν–‰ 상황, μ‚¬μš© μ˜ˆμ‚°, κ²°κ³Όλ¬Ό 등을 μ‹€μ‹œκ°„μœΌλ‘œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • ν›„μ›μžλ“€μ—κ²Œ ν”„λ‘œμ νŠΈμ— λŒ€ν•œ μƒˆλ‘œμš΄ μ—…λ°μ΄νŠΈλ‚˜ μ†Œμ‹μ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 후원 λ‚΄μ—­ 필터링 및 μ‹œκ°μ  μš”μ†Œ 제곡
    • μ°½μž‘μžλŠ” νŠΉμ • κΈ°κ°„λ™μ•ˆμ˜ 후원 κΈˆμ•‘ 좔이와 뢄포λ₯Ό μ‰½κ²Œ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • μ‹œκ°ν™” μš”μ†Œλ₯Ό 톡해 톡계 정보λ₯Ό ν•œλˆˆμ— 확인할 수 있고, ν–₯ν›„ μ „λž΅μ„ μ„Έμš°λŠ”λ° 도움을 쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

Don-Jo μ„œλΉ„μŠ€ ν™”λ©΄

🧩 인트둜

  • 졜근 μ§„ν–‰λœ 10건의 후원 내역을 μ œκ³΅ν•©λ‹ˆλ‹€. 후원 λ‚΄μ—­μ—λŠ” μ‹œκ°„, 후원 μœ ν˜•, κΈˆμ•‘ 정보가 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • 둜그인 여뢀에 따라 ν™”λ©΄ 쀑앙에 μž…λ ₯창이 λ™μž‘ν•©λ‹ˆλ‹€.
    • λΉ„λ‘œκ·ΈμΈ μƒνƒœμΈ 경우, νšŒμ›κ°€μž…μ„ μ§„ν–‰ν•©λ‹ˆλ‹€.
    • 둜그인 μƒνƒœμΈ 경우, 개인 νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

인트둜

🧩 κ°€μ΄λ“œ

  • 인트둜 νŽ˜μ΄μ§€μ˜ Guide λ²„νŠΌμ„ 눌러 κ°€μ΄λ“œ νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.
  • Don-Jo μ„œλΉ„μŠ€ 및 블둝체인 μ§€κ°‘ 생성, μ—°κ²° 방법 λ“±μ˜ κ°€μ΄λ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

κ°€μ΄λ“œ

🧩 νšŒμ›κ°€μž…

  • ν™”λ©΄ μƒλ‹¨μ˜ Start λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ νšŒμ›κ°€μž…μ„ μ§„ν–‰ν•©λ‹ˆλ‹€.
  • Wallet Connect APIλ₯Ό μ΄μš©ν•˜μ—¬ 블둝체인 지갑을 μ—°κ²°ν•˜κ³  νšŒμ›κ°€μž… ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 개인 νŽ˜μ΄μ§€ 이름(pageName)은 타 μ‚¬μš©μžμ™€ 쀑볡될 수 μ—†μŠ΅λ‹ˆλ‹€.

νšŒμ›κ°€μž…

🧩 둜그인

  • Wallet Connect APIλ₯Ό μ΄μš©ν•˜μ—¬ ν•΄λ‹Ή μ§€κ°‘ μ£Όμ†Œλ‘œ λ‘œκ·ΈμΈμ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

둜그인

🧩 κ°œμΈνŽ˜μ΄μ§€

Home

  • 개인 νŽ˜μ΄μ§€μ˜ κΈ°λ³Έ νƒ­μœΌλ‘œ μ°½μž‘μžμ˜ 정보, 후원 내역을 확인할 수 있고, κΈ°λ³Έ 후원을 μ§„ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • ν”„λ‘œν•„ 이미지, λ°°κ²½ 이미지 μœ„μ— λ²„νŠΌμ„ 클릭해 이미지λ₯Ό λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • μžκΈ°μ†Œκ°œκΈ€μ„ νŽΈμ§‘ν•  수 μžˆλŠ” MD Editorλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. ν…μŠ€νŠΈ, 이미지, HTMLνƒœκ·Έ 등을 첨뢀할 수 μžˆμŠ΅λ‹ˆλ‹€.

  • 졜근 후원 λͺ©λ‘μ˜ μš”μ†Œλ₯Ό μ„ νƒν•˜μ—¬ 후원 λ‚΄μ—­μ˜ 상세 정보λ₯Ό μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€. Transaction Hash을 μ΄μš©ν•©λ‹ˆλ‹€. 개인-ν™ˆ1

  • μ°½μž‘κ°€λŠ” 졜근 후원 내역에 닡글을 등둝/μˆ˜μ •/μ‚­μ œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 개인-ν™ˆ2

  • Transaction Hash λ₯Ό μ΄μš©ν•΄ polygonscanμ›Ή μ‚¬μ΄νŠΈλ‘œ μ΄λ™ν•˜μ—¬ 거래의 상세 내역을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 개인-ν™ˆ3 개인-ν™ˆ4

Items

  • μ°½μž‘μžκ°€ μžμ‹ μ˜ μ°½μž‘λ¬Όμ„ λ“±λ‘ν•˜κ³  νŒλ§€ν•  수 μžˆλŠ” νƒ­μž…λ‹ˆλ‹€.
  • μΆ”κ°€ λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ μƒˆλ‘œμš΄ μ•„μ΄ν…œμ„ 등둝할 수 μžˆμŠ΅λ‹ˆλ‹€. 이름, 가격, νŒŒμΌλ“±μ„ μž…λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

개인-μ•„μ΄ν…œ1

  • ν›„μ›μžλŠ” μ›ν•˜λŠ” μ°½μž‘λ¬Όμ˜ buyλ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ ꡬ맀할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • ꡬ맀된 μ•„μ΄ν…œμ€ μžλ™ λ‹€μš΄λ‘œλ“œλ₯Ό 톡해 μ°½μž‘λ¬Όμ˜ κΈ°κΈ° ν™˜κ²½μ— μ €μž₯λ©λ‹ˆλ‹€.

개인-μ•„μ΄ν…œ2

Wishlist

  • ν–₯ν›„μ˜ μ°½μž‘λ¬Όμ„ μœ„ν•΄μ„œ μ°½μž‘μžκ°€ ν•„μš”ν•œ λ¬Όν’ˆ ν˜Ήμ€ μ„œλΉ„μŠ€λ₯Ό λ“±λ‘ν•˜κ³  후원 받을 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μΆ”κ°€ λ²„νŠΌμ„ 톡해 μƒˆλ‘œμš΄ 정보λ₯Ό 등둝할 수 μžˆμŠ΅λ‹ˆλ‹€. 이름, 가격, 이미지 λ“± 정보λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

개인-μœ„μ‹œλ¦¬μŠ€νŠΈ1

  • ν›„μ›μžλŠ” λ“±λ‘λœ μœ„μ‹œλ¦¬μŠ€νŠΈ μ•„μ΄ν…œμ— μ›ν•˜λŠ” κΈˆμ•‘λ§ŒνΌ 후원할 수 μžˆμŠ΅λ‹ˆλ‹€.

개인-μœ„μ‹œλ¦¬μŠ€νŠΈ2

🧩 λŒ€μ‹œλ³΄λ“œ

Home

  • 후원받은 λͺ¨λ“  μΉ΄ν…Œκ³ λ¦¬μ— λŒ€ν•˜μ—¬ 총 κΈˆμ•‘, 30μΌλ™μ•ˆμ˜ κΈˆμ•‘, 90일 λ™μ•ˆμ˜ κΈˆμ•‘μœΌλ‘œ λ‚˜λ‰˜μ–΄ 받은 κΈˆμ•‘μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 후원 λ‚΄μ—­ λͺ©λ‘μ„ ν΄λ¦­ν•˜λ©΄ ν•΄λ‹Ή 후원에 λŒ€ν•œ 상세정보λ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λŒ€μ‹œλ³΄λ“œ-ν™ˆ

Donation

  • κΈ°λ³Έ 후원을 받은 내역듀을 λ³΄μ—¬μ£ΌλŠ” νƒ­μž…λ‹ˆλ‹€.
  • μ„€μ •μ—μ„œλŠ” ν›„μ›μ˜ λŒ€ν‘œ 이λͺ¨μ§€μ™€ 이름, 1κ°œλ‹Ήμ˜ 가격 및 ν›„μ›μžμ—κ²Œ 보낼 감사메세지λ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λŒ€μ‹œλ³΄λ“œ-후원

Items

  • μ•„μ΄ν…œμ„ νŒλ§€ν•˜μ—¬ 얻은 수읡과 내역을 λ³΄μ—¬μ£ΌλŠ” νƒ­μž…λ‹ˆλ‹€.
  • μΆ”κ°€ λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ μƒˆλ‘œμš΄ μ•„μ΄ν…œμ„ 등둝할 수 μžˆμŠ΅λ‹ˆλ‹€. 이름, 가격, νŒŒμΌλ“±μ„ μž…λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μˆ˜μ • ν˜Ήμ€ μ‚­μ œν•˜κ³  싢은 μ•„μ΄ν…œμ„ ν΄λ¦­ν•˜λ©΄ 이름, 가격, 파일 등을 μˆ˜μ •ν•˜κ±°λ‚˜ μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ•„μ΄ν…œ λ‹Ή κ΅¬λ§€ν•œ μ‚¬λžŒμ˜ 수, 얻은 μˆ˜μ΅μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ€μ‹œλ³΄λ“œ-μ•„μ΄ν…œ

Wishlist

  • ν–₯ν›„ μ°½μž‘λ¬Όμ„ μœ„ν•œ μœ„μ‹œλ¦¬μŠ€νŠΈλ‘œ 후원 받은 κΈˆμ•‘κ³Ό 내역을 λ³΄μ—¬μ£ΌλŠ” νƒ­μž…λ‹ˆλ‹€.
  • μΆ”κ°€ λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ μƒˆλ‘œμš΄ μœ„μ‹œλ¦¬μŠ€νŠΈλ₯Ό 등둝할 수 μžˆμŠ΅λ‹ˆλ‹€. 이름, 가격, 파일 등을 μž…λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μˆ˜μ • ν˜Ήμ€ μ‚­μ œν•˜κ³  싢은 μœ„μ‹œλ¦¬μŠ€νŠΈλ₯Ό ν΄λ¦­ν•˜λ©΄ 이름, 가격, 파일 등을 μˆ˜μ •ν•˜κ±°λ‚˜ μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ€μ‹œλ³΄λ“œ-μœ„μ‹œλ¦¬μŠ€νŠΈ

Buttons

  • λ‚˜μ˜ ν›„μ›νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜κΈ° μœ„ν•œ ν”ŒλŸ¬κ·ΈμΈμ„ 생성할 수 μžˆλŠ” νŽ˜μ΄μ§€ μž…λ‹ˆλ‹€.
  • λ‹€λ₯Έ λΈ”λ‘œκ·Έ 등에 ν”ŒλŸ¬κ·ΈμΈμ„ μ‚½μž…ν•˜μ—¬ λ‚΄ ν›„μ›νŽ˜μ΄μ§€λ‘œ μ΄λ™μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.
    • velog, ν‹°μŠ€ν† λ¦¬ λ“± md μ–Έμ–΄λ‘œ μž‘μ„±ν•˜λŠ” λΈ”λ‘œκ·Έμ—μ„œλŠ” μƒμ„±λœ a νƒœκ·Έλ₯Ό λΆ™μ—¬λ„£μ–΄ λ²„νŠΌμ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ ν•΄λ‹Ή λ²„νŠΌμ˜ png νŒŒμΌλ„ μ œκ³΅ν•©λ‹ˆλ‹€.
    • λͺ¨λ°”일 μ‚¬μš©μžλ“€μ„ μœ„ν•œ QRμ½”λ“œ 이미지λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
    • μ°½μž‘μžκ°€ 올린 μ•„μ΄ν…œλ“€ 쀑 νŠΉμ •ν•œ μ•„μ΄ν…œμ˜ νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜λŠ” ν”ŒλŸ¬κ·ΈμΈμ„ μ œκ³΅ν•©λ‹ˆλ‹€.

λŒ€μ‹œλ³΄λ“œ-λ²„νŠΌ

My Account

  • μ‚¬μš©μžκ°€ μžμ‹ μ˜ ν”„λ‘œν•„ 사진, 배경사진, λ‹‰λ„€μž„, 외뢀링크, νŽ˜μ΄μ§€λ„€μž„ 등을 λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • νŽ˜μ΄μ§€λ„€μž„μ€ νŽ˜μ΄μ§€λ„€μž„κ³Ό 쀑볡 될 수 μ—†μŠ΅λ‹ˆλ‹€.
  • κ°œμΈνŽ˜μ΄μ§€μ— μ μš©ν•˜κ³  싢은 ν…Œλ§ˆ 컬러λ₯Ό κ³ λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λŒ€μ‹œλ³΄λ“œ-계정

About

πŸ’Έ λΈ”λ‘œκ±°λ₯Ό μœ„ν•œ 블둝체인 기반의 후원 톡합 관리 μ„œλΉ„μŠ€

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors