스포츠 배팅 웹사이트 만들기(1)(Team Project)

병호·2023년 9월 27일

Project

목록 보기
1/5

1. 프로젝트 소개

현재 다니고 있는 부트캠프에서 처음으로 팀 프로젝트를 진행하였다. 프로젝트 인원은 6~7명 구성이며 우리 팀은 총 6명으로 구성되게 되었다. 프로젝트 기간은 2023.09.04 ~ 2023.09.26로 약 3주간 진행되었다. 프로젝트의 핵심 기능은 해외 축구 결과 예측 및 모의 배팅 웹 애플리케이션이며 기획을 하게 된 배경은 일단 조원 6명 모두 20대 남자이기 때문에 타겟층을 20대 남자로 설정하였고 주 타겟층의 관심사 중 '해외 축구 리그'에 초점을 맞추어 경기 결과를 예측하고 배팅한 결과에 따라 배당율에 따른 포인트를 얻도록 설계하게 된다면 우리 팀만의 개성있는 프로젝트가 완성될 것으로 기대되어 기획하게 되었다.

2. 개발 환경

IntelliJ
Spring Boot framework
Gradle
Java
html, css, js, bootStrap
ThymeLeaf
JPA
GitHub
MySQL
Apache Tomcat

3. UserFlow 작성

4. 기능 명세서

- 관리자 페이지

기본 설정

  • 사이트 title 수정
    Ex) 사이트명 | 페이지명 -> 사이트명을 관리자페이지에서 입력을 하면, 전체 페이지에서 저 이름이 바뀌도록 구현하겠다.
  • 사이트 설명 수정.
  • css & js 버전 수정.
  • 회원 규제 룰(다른 페이지 참고)

1. 회원 관리

  • 권한 변경(Member, Admin)
  • 회원 전체 조회
  • 회원 탈퇴

2. 게시판 관리

  • 페이징 처리 수(게시글 목록 하부 페이지 갯수)
  • 한 목록에 들어갈 게시글 갯수
  • 파일 업로드/다운로드 가능 여부

3. 게시글 관리

  • 게시글 작성 폼(파일 업로드 O/X)
  • 게시글 삭제

4. 1:1 문의

  • 문의한 목록
  • 문의사항 답변

- 회원

권한

  • 인가 권한에 따라 관리하기 위한 필드.
  • Member/Admin 가입 시 일반 회원(Member)

등급

  • 회원별 차등 수수료 할당을 위한 등급
  • 컨퍼런스(하)/유로파(중)/챔피언스(상)
  • 등급 산정 기준 : 총 배팅 금액(누적액)

포인트(단위 _유로)

  • 회원가입 시 100만 유로 지급.
  • 추가 포인트 획득
    a. 출석 포인트(1일 1회, 20만 유로)
    b. 광고 시청 포인트(제한 X, 2만 유로)
  • 포인트 상한 5000만 유로 이상 시 졸업.
    a. 졸업 보상 : Lv1 씩 증가하며, 레벨마다 회원 닉네임 폰트 뒤에 백그라운드 색깔 변경.
    b. Lv10 단계까지 (백그라운드 색X,무지개(남 제외),은금검)

로그인

비밀번호는 암호화(hashing) 과정을 거쳐 DB로 전송.

회원가입

  • ID : 영문과 숫자 조합으로 4자리 이상 16자리 이하 제한, 중복 여부 확인.
  • PW : 영문, 숫자, 특문 조합으로 8자리이상 16자리 이하 제한
  • 이름 : 한글 입력, 2자리 이상 30자리 이하, 공백 입력 제한
  • 닉네임 : 영문,숫자 조합으로 4자리 이상 16자리 이하 제한, 중복 여부 확인.
  • E-mail : 이메일 양식으로 입력 제한.
  • 모바일 : 회원 중복 가입 방지용, 입력 값 유효성 검증 시 정규표현식(Regex) 사용한 검증.

ID 찾기

  • 이름, 이메일 입력 받아서 조회.
  • 맞으면 아이디 정보 메시지 출력 후 확인 시 로그인페이지로 넘어감
  • 틀리면 없는 정보라고 메시지 뜸.

비밀번호 찾기

  • 아이디, 이메일 입력 받아서 조회
  • 맞으면 이메일로 '비밀번호 변경' 링크 보냄
  • 틀리면 없는 정보라고 메시지 뜸.

마이페이지

  • 개인정보 조회 및 수정, 회원탈퇴 - 마이페이지 이동 전 비밀번호로 확인.
  • 배팅 내역 조회 (배팅 금액, 배팅 시간, 배당율, 경기 정보)
  • 본인이 작성한 게시글 조회(작성일, 작성자, 제목, 조회수)
  • 관리자에게 문의한 내용에 대한 관리자의 답변 목록 조회

- 게시글

게시글 검색

  • 제목, 작성자(닉네임), 내용으로 조회.

파일 업로드 & 다운로드

  • 이미지 파일 업로드 가능하도록 구현.(multipart/form-data)

- 승부 예측 및 배팅

배팅 하기

  • 금액 입력 : '금액 입력값' 만 포인트(입력값에 X 10,000)

  • 최대 배팅 버튼

    • 보유한 포인트 전체 배팅
      만의 자리로 제한한 값만 배팅가능하도록함.
      Ex) 180,500 -> 180,000
      배팅 1회 시 승/무/패 중 하나만 선택 가능.
  • 중복 배팅 가능.

    • Ex) 한 계정 -> '승' 10만 배팅 후, '무' 10만 배팅 가능.
  • 배팅 성공

    • 배당금액 : 회원 배팅 금액 * 배당율.
      배당율 : 전회원 배팅 총금액(3) / 적중 총금액(1), 소수 둘째 자릿까지 반올림.
      지급금 : 배당금액x1 - 회원 등급에 따른 수수료 비율.
  • 지급금 지급

    • 자동으로 추가되도록 구현
      회원은 마이페이지 배팅 결과에서 확인.
  • 배팅 가능 시간 제한

    • 경기 시작 전까지만 배팅 가능하도록 구현.

배팅 취소

  • 배팅 취소 가능 시간 제한
    • 경기 시작 전까지만 취소 가능하도록 구현.
  • 취소 확인 메시지, 취소한 금액 환급, 배당율에 적용되도록 로직 구현.

댓글

  • 내용 글자수 1자 이상 100자 이하 제한.

ERD 작성

테이블 다이어그램

https://github.com/hyensukim/SpringBootTeamproject#member

위 내용이 프로젝트 기획한 부분이고 다음 포스팅 부터 본격적으로 코드를 어떠한 방향으로 어떻게 짰는지 분석해보자

profile
안녕하세요

1개의 댓글

comment-user-thumbnail
2025년 8월 1일

요즘은 이미 괜찮은 북메이커 플랫폼들이 꽤 많고, 솔직히 말하면 나는 막 새로 생긴 프로젝트보다는 Mostbet 한국처럼 이미 평판도 있고, 자리 잡은 플랫폼을 더 믿게 돼. 꼭 더 좋다 나쁘다 그런 건 아닌데, 그냥 어느 정도 오래 운영되고 잘 굴러가고 있으면 괜찮은 거 아닌가 싶어.

답글 달기