xet-a / capstone-2023-tayotayo

PNU CSE 2023 Capstone 'TayoTayo - Shared Mobility Service on Hyperledger Fabric and Hyperledger Indy' Repository

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TayoTayo (타요타요)

1. 프로젝트 소개

본 과제에서는 스마트 시티에서 시민들 간에 개인 모빌리티를 공유할 수 있는 P2P 방식의 공유 모빌리티 서비스를 개발하고자 한다.
DID를 통한 차량 검증으로 개인이 차량의 정보를 관리하는 주체가 되도록 하고, 허가형 블록체인으로 검증된 차량만 거래에 참여할 수 있으며 내부에서만 모든 거래 정보가 투명하게 공개되는 안전한 거래 시스템을 설계한다.


2. 팀소개

2023 전기 부산대학교 정보컴퓨터공학부 졸업과제 팀 타요타요

팀원 역할 소개

김돈우
- 블록체인 네트워크 구축 및 기능 개발 (Hyperledger Indy)
- Backend 서버 개발 (Spring Boot)

최세희
- UI 디자인 및 서비스 기획
- 블록체인 네트워크 구축(Hyperledger Fabric)
- 블록체인 체인코드 개발

이지현
- UI 디자인 및 서비스 기획
- 클라이언트 UI 설계 및 기능 개발(React.js)


3. 시스템 구성도

전체 시스템 구성도


FrontEnd(React)

Dependency

Dependency Version
Next.js 13.4.7
TypeScript 5.1.5
Recoil 0.7.7
axios 1.4.0
tailwindCSS 3.3.2
react-hook-form 7.45.2

4. 소개 및 시연 영상

페이지 소개

로그인 회원 가입 대시보드 차량 검색
차량 관리 차량 등록 채팅 마이페이지

시연 영상

타요타요 서비스 영상



5. 📌 디렉토리 구조 소개

📦capstone-2023-1-42
  📂Tayo-Backend               // 타요타요(차량 공유) 서비스 Server
  📂Tayo_FE                    // 타요타요 Web Client
  📂VC_Service                 // 차량 VC 발급 서비스 Server
  📂bin                        // Hyperledger Fabric's binaries
  📂chaincode                  // Hyperledger Fabric's chaincode
   📂tayocar                  // 차량 관리 체인코드
   📂tayosharing              // 차량 공유 및 지갑 체인코드
  📂config                     // Hyperledger Fabric's config
  📂libindy                    // Hyperledger Indy's library
  📂network                    // Hyperledger Fabric's network

6. 설치 및 사용법

본 프로젝트는 다음과 같은 단계에 따라 관련 패키지들의 설치와 빌드를 수행할 수 있습니다.

1. 타요타요 프로젝트를 클론합니다.

- git clone https://github.com/pnucse-capstone/capstone-2023-1-42.git

2. 먼저 Indy Pool을 docker에 build하고 실행합니다.

- Windows : docker build -f indy-pool.dockerfile -t indy_pool ../ci
- Mac OS : docker build --platform linux/amd64 -f indy-pool.dockerfile -t indy_pool ../ci
- docker run -itd -p 9701-9708:9701-9708 indy_pool

3. 다음으로 tayonetwork.sh script 파일로 Fabric network를 실행합니다.

- cd network
- ./tayonetwork.sh

여기까지 완료되면 위 사진과 같이 docker desktop에서 container들을 확인할 수 있습니다.

4. 환경 변수를 설정합니다.

* Windows
- Path에 capstone-2023-1-42\libindy\lib 절대 경로 추가하기
- ex) - D:\capstone-2023-1-42\libindy\lib
* Mac OS
- 프로젝트 실행 전 dylb 환경변수를 설정합니다. (필수)
- LD_LIBRARY_PATH = D:\capstone-2023-1-42\libindy\lib
- DYLD_LIBRARY_PATH = D:\capstone-2023-1-42\libindy\lib

Mac OS(M1 chip)에서 libindy 라이브러리 인식이 되지 않아 서버 실행 시 `NullPointerException`이 발생하는 경우가 있습니다.
라이브러리가 제대로 출력되는지 확인해보시고, 제대로 출력된다면 설치한 JDK를 확인해보세요. ARM 프로세서 기반인 M1 chip에서 JAVA가 Intel chip 프로세서로 동작하고 있을 수 있습니다.


5. 프로젝트 내 Tayo-Backend 서버와 VC_Service 서버를 빌드 후 실행합니다.

- cd Tayo-Backend
- ./gradlew build
- java -jar ./build/libs/Tayo-BE-0.0.1-SNAPSHOT.jar

- cd VC_Service
- ./gradlew build
- java -jar ./build/libs/VC_Service-0.0.1-SNAPSHOT.jar

6. React로 웹 클라이언트를 실행합니다.

- cd Tayo_FE
- npm install
- npm run dev

프로젝트 실행 후 http://localhost:3000 으로 접속합니다.

About

PNU CSE 2023 Capstone 'TayoTayo - Shared Mobility Service on Hyperledger Fabric and Hyperledger Indy' Repository

License:MIT License


Languages

Language:Java 42.5%Language:C 28.3%Language:TypeScript 15.2%Language:Shell 10.7%Language:Go 3.0%Language:JavaScript 0.2%Language:CSS 0.1%Language:Dockerfile 0.0%