프로젝트명 : FreeNeeds
팀명 : 놀면모하니
개발기간 : 2022.08.29 ~ 2022.10.06
프로젝트 개요 : 블록체인 기반 IT프리랜서 계약 서비스
프리니즈의 Notion 바로가기
디지털 노마드 시대와 함께 커져가는 IT 프리랜서의 생태계,
일방적 계약 변경으로 인한 피해와 대금 지불의 지연 등을 해결하기 위해 프리니즈가 등장했습니다.
프리니즈는블록체인 기술
을 적용하여 신뢰할 수 있는 계약 서비스를 제공하고
안전한 IT 프리랜서 계약 환경을 조성합니다.
구분 | 기술스택 | 상세내용 | 버전 |
---|---|---|---|
공통 | 형상관리 | Gitlab | - |
이슈관리 | Jira | - | |
커뮤니케이션 | Mattermost | - | |
커뮤니케이션 | Notion | - | |
Server | 서버 | AWS EC2 | - |
플랫폼 | Ubuntu | 20.04 | |
배포 | Docker | 20.10.17 | |
배포 | Jenkins | 2.346.2 | |
배포 | Nginx | 1.23.1 | |
BackEnd | DB | MySQL | 8.0.29 |
JPA | 5.0.0 | ||
QueryDSL | 5.0.0 | ||
Java | Zulu | 11 | |
Spring | Spring | 5.3.22 | |
Spring Boot | 2.5.2 | ||
swagger2 | 3.0.0 | ||
Spring Security | 2.7.2 | ||
JWT | 3.10.3 | ||
IDE | Intellij | 2022.2 | |
Build | Gradle | 7.5 | |
FrontEnd | HTML5 | - | |
CSS3 | - | ||
JavaScript(ES6) | - | ||
Vue | 2.7.10 | ||
IDE | Visual Studio Code | 1.70.0 |
- 서비스의 사용 플로우와 핵심 기능을 확인할 수 있습니다.
- 추천 프로젝트와 추천 프리랜서를 제공합니다.
- 등록된 프로젝트 list를 페이징 처리해 제공합니다.
- 프로젝트 카드 클릭 시 프로젝트의 상세 사항을 볼 수 있습니다.
- 분야, 형태, 기술, 지역을 파라미터로 필터링해 프로젝트를 찾아줍니다.
- 등록된 프리랜서 list를 페이징 처리해 제공합니다.
- 프리랜서 카드 클릭 시 프리랜서의 상세 사항을 볼 수 있습니다.
- 기술을 파라미터로 필터링해 프로젝트를 찾아줍니다.
- 프로젝트 현황
- 구인중인 프로젝트, 진행중인 프로젝트, 완료된 프로젝트를 분류하여 기업이 등록한 프로젝트 현황을 제공합니다.
- 프로젝트 등록
- 프로젝트 등록이 가능합니다.
- 기업 정보 관리
- 기업 정보 등록이 가능합니다.
- 프리랜서 상세 페이지에서 원하는 프리랜서에게 인터뷰를 요청할 수 있습니다.
- 지원자에게 계약서를 작성해서 서명 후 보냅니다.
-
계약이 완료된 프로젝트의 계약서를 확인할 수 있습니다.
-
계약이 완료된 프로젝트의 계약서는 스마트 컨트랙트를 통해 블록체인에 올라가게 됩니다.
-
코인보기 버튼을 통해 블록체인 데이터 정보를 확인할 수 있습니다.
- 지원자 카드의 정산하기 버튼을 눌러 컨트랙트에 설정된 수의 TC토큰을 정산합니다.
- 나의 지원현황
- 제의받은 프로젝트, 지원한 프로젝트, 계약중인 프로젝트, 체결된 프로젝트를 분류하여 프리랜서가 진행중인 프로젝트 현황을 제공합니다.
- 커리어 관리
- 프리랜서의 프로젝트와 이력서 등록 및 수정이 가능합니다.
- 프로젝트 상세 페이지에서 원하는 프로젝트에 지원할 수 있습니다.
- 계약 중인 프로젝트 탭에서 기업 측에서 작성한 계약서를 확인하고 서명합니다.
-
계약이 완료된 프로젝트의 계약서를 확인할 수 있습니다.
-
계약이 완료된 프로젝트의 계약서는 스마트 컨트랙트를 통해 블록체인에 올라가게 됩니다.
-
코인보기 버튼을 통해 블록체인 데이터 정보를 확인할 수 있습니다.
- 메타마스크 지갑을 통해 동결되어 있던 TC토큰을 정산 받습니다.
박재영(팀장😎) (Front-End) |
박수근 (Front-End) |
성문조 (Front-End) |
유영진 (Back-End) |
이다인 (Back-End) |
조다연 (Back-End) |
CI/CD Vue Blockchain |
UI/UX Vue DB 관리 |
UI/UX Vue UCC |
REST API Server 디자인 |
REST API Server Blockchain |
REST API Server UCC |
서버는 AWS EC2 ubuntu를 사용했습니다
구분 | 포트번호 |
---|---|
Vue | 80443 |
Spring | 8080 |
Jenkins | 9090 |
MySQL | 3306 |
**Frontend**
Vue3 version
Vuex 3.4.0
CSS3
JavaScript(ES6)
HTML5
**Backend**
SpringBoot 2.7.1
Gradle 7.4.1
Spring Security
Spring data JPA
Querydsl
Node.js
express
**DB**
MySQL : 8.0.29
Redis
**Server**
Ubuntu 20.0
**소스코드 클론**
git clone <repo URL>
**디렉토리 이동**
cd backend
**gradle 프로젝트 빌드**
./gradlew
**생성된 jar 파일 확인**
cd build/libs ssafy-web-project-1.0-SNAPSHOT.jar
모든 설치 전 실행
패키지 업데이트
apt-get update
**JRE 설치**
sudo apt-get install openjdk-8-jre
**JDK 설치**
sudo apt-get install openjdk-8-jdk
**자바 설치 버전 확인**
java -version
javac -version
\*\*자바 환경변수 설정
1.\*\* vi 에디터 열기
sudo vi /etc/profile
2. 맨 아래 추가 하기
export JAVA_HOME=/user/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin/:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH
3. 변경 내용 즉시 적용하기
source /etc/profile
4. 재부팅하기
sudo reboot now
**현재 방화벽 설정 확인**
sudo ufw status
if ufw == inactive
**방화벽 설정**
sudo ufw allow 22
sudo ufw enable
**mysql 설치**
sudo apt install mysql-server
## mysql 외부 접속 설정
**디렉토리 이동**
cd /etc/mysql/mysql.conf.d
**mysqld.cnf 파일 수정**
sudo vi mysqld.cnf
**설정 변경**
bind-address 127.0.0.1 -> 0.0.0.0
**mysql 접속**
sudo mysql
**외부 접속 계정 생성 & 권한 부여**
create user '계정이름'@'%' identified by '패스워드';
grant all privileges on _._ to '계정이름'@'%' with grant option;
**mysql 접속 포트 추가**
sudo ufw allow 3306
**redis 설치**
sudo apt-get install redis-server
**redis 설치 확인**
redis-server --version
**redis 설정**
sudo vi /etc/redis/redis.conf
**변경**
bind 127.0.0.1 => bind 0.0.0.0
**redis 실행**
sudo systemctl start redis-server
**redis 접속 포트 추가**
sudo ufw allow 6379
**nginx 접속 포트 추가**
sudo ufw allow 80
sudo ufw allow 443
**Nginx 설치**
sudo apt-get install nginx
**Nginx 시작**
sudo service nginx start
**설정파일 생성**
cd /etc/nginx/sites-available
sudo vi b105.conf
**sites-enabled에 심볼릭 링크 만들기**
udo ln -s /etc/nginx/sites-available/b105.conf /etc/nginx/sites-enabled
**심볼릭 링크 추가 확인**
cd /etc/nginx/sites-enabled
ls -l
**기존 설정파일 삭제**
sudo rm default
**재구동 및 확인**
sudo service nginx restart
**SSL 인증서 발급**
sudo service nginx restart