온라인에서 소그룹 별 축구 화상 응원과 경기 정보 제공 서비스를 제공합니다.
단순히 경기를 함께 시청하고 응원하는 것뿐만 아니라 실시간 축구 정보 제공, 촬영 기능 등 다양한 부가기능도 함께 제공합니다.
상세 기술스택 및 버전
구분
기술스택
상세내용
버전
공통
형상관리
Gitlab
-
이슈관리
Jira
-
커뮤니케이션
Mattermost, Notion
-
BackEnd
DB
MariaDB
10.3.23
JPA
-
QueryDSL
5.0.0
Redis
7.2.4
Java
Correto-17
17.0.10
Spring
Spring
Spring Boot
3.0.0
IDE
IntelliJ
Cloud Storage
AWS S3
-
Build
Gradle
7.4
WebRTC
OpenVidu
2.29.0
API Docs
Postman
FrontEnd
HTML5
-
CSS3
-
JavaScript(ES6)
-
Vue.js
Vue.js
3.4.15
WebSocket
IDE
Visual Studio Code
Server
서버
AWS EC2
-
플랫폼
Ubuntu
배포
Docker
배포
Jenkins
상세 기술스택 및 버전
구분 | 기술스택 | 상세내용 | 버전 |
---|---|---|---|
공통 | 형상관리 | Gitlab | - |
이슈관리 | Jira | - | |
커뮤니케이션 | Mattermost, Notion | - | |
BackEnd | DB | MariaDB | 10.3.23 |
JPA | - | ||
QueryDSL | 5.0.0 | ||
Redis | 7.2.4 | ||
Java | Correto-17 | 17.0.10 | |
Spring | Spring | ||
Spring Boot | 3.0.0 | ||
IDE | IntelliJ | ||
Cloud Storage | AWS S3 | - | |
Build | Gradle | 7.4 | |
WebRTC | OpenVidu | 2.29.0 | |
API Docs | Postman | ||
FrontEnd | HTML5 | - | |
CSS3 | - | ||
JavaScript(ES6) | - | ||
Vue.js | Vue.js | 3.4.15 | |
WebSocket | |||
IDE | Visual Studio Code | ||
Server | 서버 | AWS EC2 | - |
플랫폼 | Ubuntu | ||
배포 | Docker | ||
배포 | Jenkins |
시스템 구성 |
---|
CI/CD 배포 흐름도 |
---|
디렉토리 구조 |
---|
Project
├─backend
│ ├─gradle
│ └─src
│ ├─main
│ │ ├─generated
│ │ │ └─com
│ │ │ └─spoparty
│ │ │ └─api
│ │ │ ├─common
│ │ │ │ └─entity
│ │ │ └─member
│ │ │ └─entity
│ │ ├─java
│ │ │ └─com
│ │ │ └─spoparty
│ │ │ ├─api
│ │ │ │ ├─archive
│ │ │ │ │ ├─controller
│ │ │ │ │ ├─entity
│ │ │ │ │ ├─repository
│ │ │ │ │ └─service
│ │ │ │ ├─board
│ │ │ │ │ ├─controller
│ │ │ │ │ ├─entity
│ │ │ │ │ ├─repository
│ │ │ │ │ └─service
│ │ │ │ ├─club
│ │ │ │ │ ├─controller
│ │ │ │ │ ├─dto
│ │ │ │ │ │ ├─request
│ │ │ │ │ │ └─response
│ │ │ │ │ ├─entity
│ │ │ │ │ ├─repository
│ │ │ │ │ │ └─querydsl
│ │ │ │ │ └─service
│ │ │ │ ├─common
│ │ │ │ │ ├─constants
│ │ │ │ │ ├─dto
│ │ │ │ │ ├─entity
│ │ │ │ │ └─exception
│ │ │ │ ├─football
│ │ │ │ │ ├─controller
│ │ │ │ │ │ └─test
│ │ │ │ │ ├─entity
│ │ │ │ │ ├─repository
│ │ │ │ │ │ └─querydsl
│ │ │ │ │ ├─response
│ │ │ │ │ │ └─comparator
│ │ │ │ │ └─service
│ │ │ │ ├─member
│ │ │ │ │ ├─controller
│ │ │ │ │ ├─entity
│ │ │ │ │ ├─repository
│ │ │ │ │ └─service
│ │ │ │ ├─openvidu
│ │ │ │ ├─party
│ │ │ │ │ ├─controller
│ │ │ │ │ ├─dto
│ │ │ │ │ │ ├─request
│ │ │ │ │ │ └─response
│ │ │ │ │ ├─entity
│ │ │ │ │ ├─repository
│ │ │ │ │ └─service
│ │ │ │ └─vote
│ │ │ │ ├─controller
│ │ │ │ ├─domain
│ │ │ │ ├─dto
│ │ │ │ │ ├─request
│ │ │ │ │ └─response
│ │ │ │ ├─repository
│ │ │ │ └─service
│ │ │ ├─common
│ │ │ │ ├─interceptor
│ │ │ │ ├─model
│ │ │ │ │ └─response
│ │ │ │ └─util
│ │ │ ├─config
│ │ │ ├─redis
│ │ │ └─security
│ │ │ ├─exception
│ │ │ ├─jwt
│ │ │ ├─model
│ │ │ └─service
│ │ └─resources
│ └─test
│ └─java
│ └─com
│ └─spoparty
│ └─api
│ ├─club
│ │ └─service
│ └─vote
│ └─service
├─batch
│ ├─gradle
│ └─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─spoparty
│ │ │ └─batch
│ │ │ ├─dto
│ │ │ ├─dummyData
│ │ │ │ └─model
│ │ │ ├─entity
│ │ │ ├─Exception
│ │ │ ├─job
│ │ │ ├─repository
│ │ │ ├─scheduler
│ │ │ │ └─model
│ │ │ ├─step
│ │ │ └─util
│ │ └─resources
│ └─test
│ └─java
│ └─com
│ └─spoparty
│ └─batch
├─frontend
│ ├─public
│ └─src
│ ├─api
│ ├─components
│ │ ├─archive
│ │ ├─board
│ │ ├─club
│ │ ├─common
│ │ ├─league
│ │ ├─mainpage
│ │ ├─match
│ │ ├─openvidu
│ │ ├─party
│ │ ├─user
│ │ └─vote
│ ├─router
│ ├─stores
│ │ ├─club
│ │ │ └─party
│ │ ├─football
│ │ └─member
│ ├─util
│ └─views
├─jenkins
└─nginx
ERD |
---|
- 클럽멤버들과 축구 시청을 위한 파티를 만들어 함께 응원해 보아요!
- 실시간 경기 URL과 경기 정보를 입력하면, 친구들과 함께 같은 경기를 시청할 수 있어요.
- 캠과 오디오, 채팅창을 통해 친구들과 소통할 수 있어요.
- 10분 뒤에 저 선수가 골을 넣을 수 있을지, 없을지. 내가 응원하는 팀이 전반전 동안 우세를 점할지, 골 점유율은 어떻게 될지. 미래를 점치면서 경기를 즐겨보아요!
- 예측이 틀렸으면? 어딜가려고 해요? 이리와서 벌칙 받아요! 투표 결과에 따라 다양한 벌칙을 받을 수 있어요
- 추억은 아름다운 기억! 안타까운 시간을 흘러보내기만 할 건가요?
- 다시 돌아오지 않을 이 순간을 귀중하게 간직한다면 어떨까요?
- 지나고 돌이켜보면 아름다운 추억의 오아시스가 될 순간을 기록해보아요!
- 촬영물은 추억 아카이브에서 2주간 다운받을 수 있어요.
🎥 UCC 보러가기
Jira 누적흐름 다이어그램 |
---|
Notion |
---|
👑 박현우 (Back-End) |
김종범 (Back-End) |
이효리 (Back-End) |
조은별 (Back-End) |
장승호 (Front-End) |
황인규 (Front-End) |
Infra Openvidu api 채팅 api | 회원관리 api 추억 아카이브, 그룹 게시판 api 알림 api |
팀, 리그 경기정보 api 배치 시스템 |
Infra 그룹, 파티 api 투표 api | 회원관리 UI 추억 아카이브 UI 그룹 게시판 UI | 리그, 경기 정보 UI 파티 UI |
- 기획 및 설계 : 22.1.3 ~ 1.14
- 프로젝트 구현 : 22.1.15 ~ 22.2.12
- 버그 수정 및 산출물 정리 : 22.2.13 ~ 16
구분 | 링크 |
---|---|
요구사항정의서 | 요구사항정의서 바로가기 |
기능명세서 | 기능명세서 바로가기 |
와이어프레임 | 와이어프레임 바로가기 |
ERD | ERD 바로가기 |
컨벤션목록 | 컨벤션목록 바로가기 |
간트차트 | 간트차트 바로가기 |
발표자료 | 발표자료 바로가기 |
PORT | 이름 | 역할 |
---|---|---|
22 | SSH | |
443 | HTTPS | |
80 | HTTP - HTTPS로 리다이렉트(프론트 페이지로 리다이렉트) | |
6379 | Redis Docker Container | |
8080 | Jenkins Docker Container | |
9090 | Spring boot Docker Container | |
9091 | Batch Docker Container | |
3478 | Openvidu | 클라이언트 IP를 확인하기 위해 STUN/TURN 서버에서 사용 |
5442 | Openvidu | OpenVidu 서버 |
5443 | Openvidu | OpenVidu 서버 |
8888 | Openvidu | Kurento Media Server에서 |
40000~57000 | Openvidu | Kurento Media Server에서 미디어 연결을 설정하는 데 사용 |
57001~65535 | Openvidu | TURN 서버에서 중계된 미디어 연결을 설정하는 데 사용 |