Skip to content

친구들과 함께 축구 경기를 📺 시청하고, 🗳️ 응원하고, ⚽️ 경기 정보를 받아보세요! 온라인에서 소그룹 별 축구 화상 응원과 경기 정보 제공 서비스를 제공합니다. 단순히 경기를 함께 시청하고 응원하는 것뿐만 아니라 실시간 축구 정보 제공, 촬영 기능 등 다양한 부가기능도 함께 제공합니다.

SPOPARTY/SPOPARTY

Repository files navigation


SPOPARTY

실시간 축구 시청 화상 모임 플랫폼


mainPage

목차

  1. 서비스 소개
  2. 기술 스택
  3. 시스템 아키텍처
  4. 주요기능 소개
  5. UCC 보러가기
  6. 협업 관리
  7. 개발 멤버 소개
  8. 프로젝트 기간
  9. 프로젝트 관련 문서
  10. 참고

💡 서비스 소개

👥 친구들과 함께 축구 경기를 📺 시청하고, 🗳️ 응원하고, ⚽️ 경기 정보를 받아보세요!

온라인에서 소그룹 별 축구 화상 응원과 경기 정보 제공 서비스를 제공합니다.
단순히 경기를 함께 시청하고 응원하는 것뿐만 아니라 실시간 축구 정보 제공, 촬영 기능 등 다양한 부가기능도 함께 제공합니다.

SPOPARTY에서 새로운 축구 시청을 경험해보세요!


🛠️ 기술 스택





상세 기술스택 및 버전
구분 기술스택 상세내용 버전
공통 형상관리 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

🗂️ 시스템 아키텍처

시스템 구성
Architecture1
CI/CD 배포 흐름도
Architecture2
디렉토리 구조
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
ERD_Total
ERD_1
ERD_2

🖥️ 주요기능

Private 클럽 생성 및 초대

  • 친한 친구들과 축구 경기를 즐기고, 추억을 간직하고 싶으시다고요? 비공개 클럽을 만들고 초대해보세요!
    그룹관리

축구 시청 파티 생성

  • 클럽멤버들과 축구 시청을 위한 파티를 만들어 함께 응원해 보아요!
  • 실시간 경기 URL과 경기 정보를 입력하면, 친구들과 함께 같은 경기를 시청할 수 있어요.
  • 캠과 오디오, 채팅창을 통해 친구들과 소통할 수 있어요.
    화상통화

파티 내 오락거리

투표

  • 10분 뒤에 저 선수가 골을 넣을 수 있을지, 없을지. 내가 응원하는 팀이 전반전 동안 우세를 점할지, 골 점유율은 어떻게 될지. 미래를 점치면서 경기를 즐겨보아요!
  • 예측이 틀렸으면? 어딜가려고 해요? 이리와서 벌칙 받아요! 투표 결과에 따라 다양한 벌칙을 받을 수 있어요
    투표

사진/영상 촬영

  • 추억은 아름다운 기억! 안타까운 시간을 흘러보내기만 할 건가요?
  • 다시 돌아오지 않을 이 순간을 귀중하게 간직한다면 어떨까요?
  • 지나고 돌이켜보면 아름다운 추억의 오아시스가 될 순간을 기록해보아요!
  • 촬영물은 추억 아카이브에서 2주간 다운받을 수 있어요.
    추억

실시간 경기 정보 제공

  • 저 선수 이름이 뭐였지?
  • TV보다가 문득 저 선수가 누군지 궁금하지 않으셨나요?
  • 원클릭으로 경기 실황을 한 번에 알아보아요!
    실시간경기정보

축구 정보 제공

  • 다른 사이트 찾아가지 마세요! 다양한 축구 정보를 우리 사이트에서는 무료로 제공합니다!
  • 내가 팔로우 하고 있는 팀 경기를 놓치지 않도록 알림을 제공합니다!
    경기일정 리그정보

응원 집계 현황

  • 다른 사람들은 누굴 응원할까? 응원 집계 현황을 실시간으로 즐겨보아요!
    응원


👥 협업 관리

Jira 누적흐름 다이어그램
Jira BurnDown Chart
Notion
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

📆 프로젝트 기간

24.1.3 ~ 24.2.16(7주)

  • 기획 및 설계 : 22.1.3 ~ 1.14
  • 프로젝트 구현 : 22.1.15 ~ 22.2.12
  • 버그 수정 및 산출물 정리 : 22.2.13 ~ 16

📋 프로젝트 관련 문서

구분 링크
요구사항정의서 요구사항정의서 바로가기
기능명세서 기능명세서 바로가기
와이어프레임 와이어프레임 바로가기
ERD ERD 바로가기
컨벤션목록 컨벤션목록 바로가기
간트차트 간트차트 바로가기
발표자료 발표자료 바로가기

참고

✨ EC2 포트 정리


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 서버에서 중계된 미디어 연결을 설정하는 데 사용

About

친구들과 함께 축구 경기를 📺 시청하고, 🗳️ 응원하고, ⚽️ 경기 정보를 받아보세요! 온라인에서 소그룹 별 축구 화상 응원과 경기 정보 제공 서비스를 제공합니다. 단순히 경기를 함께 시청하고 응원하는 것뿐만 아니라 실시간 축구 정보 제공, 촬영 기능 등 다양한 부가기능도 함께 제공합니다.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published