요구사항 정의서에 정의된 고객의 요구사항을 개발자의 입장에서 기능으로 정리하는 부분입니다. 요구사항 정의서에 작성되어 있지 않더라도, 시스템을 운영하기 위해 필요한 기능들에 대해서도 작성해야 합니다.


기능 명세

상세 기능 명세

메인 페이지

  1. 응원하기 기능

    1. 응원
      1. 파티 단위가 아닌 전체 단위
      2. 축구 경기 (ex) 빅 클럽의 경기, 국가대표 경기)의 결과를 예측
      3. 쿠팡플레이에서 표시하는 예측 기능과 동일한 형태
      4. 응원기능이 생성될 리그는 쿠팡 플레이에서 사용하는 리그 정보와 동일한 정보 사용
      5. 경기 Home 구단, Away 구단 이름을 버튼에 표시하고, 버튼 클릭 시 해당 구단에 응원 카운트를 추가시킴
      6. 한 사용자는 게시된 응원에 대해 1회만 투표 가능
      7. 경기 시작 24시 전부터 경기가 종료되기 전까지 진행
      8. 메인페이지 상단에 슬라이드 형식으로 해당 경기를 모두 띄움.
    2. 결과 확인
      1. 경기 결과를 외부 API를 통해 확인
      2. 참여한 사용자들에게 예측 결과 알림을 보냄.
      3. 현재까지 집계된 응원 카운트를 비율로 바로 표시
      4. ex) 전북 현대 7, 인천 유나이티드 3 ⇒ 70%, 30%
    3. 포인트 지급
      1. 결과에 따라 유저에게 포인트를 지급한다.
      2. 어떤 방법으로 얼마나 줄지 회의
    4. 승부예측 생명주기
      1. 슬라이더 형식으로 해당 경기의 예측 모두 게시
      2. 경기 진행되기 24시간 전부터 시작하기 전까지 예측 가능
      3. 경기가 끝날 때까지 사람들의 예측 합계를 나타내고 예측 불가능
      4. 경기 결과를 얻으면 승/패 나타내고 종료 후 24시간 동안 게시
  2. 파티 목록 조회 기능

    1. 조회
      1. 메인페이지에서 현재 생성된 파티의 목록을 조회 가능.
      2. 제공되는 파티 정보
        1. 현재 접속중인 사용자의 수
        2. 경기하는 구단
        3. 파티 제목 등
    2. 검색
      1. 파티 목록 조회 컴포넌트 상단에 검색창을 제공한다.
      2. 방 이름을 검색할 수 있다.
  3. 랭킹 기능

    1. 포인트가 가장 높은 순서대로 랭킹 순위를 매긴다.
    2. Top10의 점수와 닉네임을 보여준다.
  4. 경기 일정 목록 조회 기능

    1. 진행 예정인 경기 일정 정보를 조회 가능하다.
    2. 경기를 나타내는 방식
      1. 가장 가까운 경기가 앞으로 온다.
      2. 종료된 경기는 표시하지 않는다.
      3. 진행중인 경기는 나타낸다.
    3. 구현 방법
      1. 스케쥴러로 일정시간마다 업데이트 ex) 20분
      2. DB에 저장된 경기정보 중 종료시간이 현재 시간보다 늦은 것을 시작시간으로 정렬해서 불러온다.

그룹

  1. 그룹 목록 조회
    1. 내가 속한 그룹의 목록을 조회할 수 있다.
  2. 그룹 상세 조회
    1. 내가 속한 그룹의 상세 내용을 조회할 수 있다.
  3. 그룹 생성
    1. 그룹명을 입력한다.
  4. 그룹 수정
    1. 그룹명을 수정할 수 있다.
  5. 그룹 구성원 초대
    1. 그룹 생성 후 초대 url을 발급, 복사할 수 있다.
    2. 초대 url은 7일간 유효하며, 재발급 받을 수 있다.
    3. 초대 url을 공유받은 사람이 url을 입력하여, 수락 여부를 선택한 후 그룹에 소속될 수 있다.
    4. 그룹 내 최대인원(우선 6명)을 초과하면, 그룹에 초대되지 않는다.
    5. 유효하지 않은 초대 url이면, 그룹에 초대되지 않는다.
  6. 그룹 나가기
    1. 그룹 구성원은 그룹을 나갈 수 있다.
    2. 그룹장이 그룹을 나가는 경우, 그룹장을 맡을 구성원을 선택한다.
  7. 그룹 구성원 강퇴
    1. 그룹을 최초로 만든 사람이 그룹장이 되며, 그룹에서 내보낼 구성원을 선택할 수 있다.