Skip to content

bamtol2/roCatRun

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

596 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏆 공통 프로젝트 우수상 수상 🏆

첫페이지__1_

📌 목차

  1. 프로젝트 소개
  2. 팀 소개
  3. 주요 기능
  4. 시연 영상
  5. 주요 기술
  6. 기술 아키텍처
  7. 프로젝트 구조
  8. 산출물

🚀 프로젝트 소개

SSAFY 12기 2학기 공통 프로젝트

⌛ 프로젝트 기간 : 2025.01.13 ~ 2025.02.20 (6주)

📆 상세 기간 : 기획 2주 + 공부 1주 + 개발 2주 + 버그 해결 1주

🔗 노션 링크

📲 배포 URL - 모바일

배포 URL - 워치

🏃"친구와 함께 달리는 RPG, 로캣냥(roCatRun)!"

✨ 혼자 하는 러닝은 이제 그만!
지루한 러닝이 실시간 레이드 게임으로 다시 태어났어요.
친구들과 함께 보스를 물리치며 즐거운 러닝을 시작해보세요!

🎮 이런 분들을 위한 러닝 게임이에요
혼자 뛰기는 심심하고 동기부여가 필요하신 분
친구들과 함께 목표를 달성하며 운동하고 싶으신 분
러닝을 더 재미있게 즐기고 싶으신 분
갤럭시 워치로 건강한 습관을 만들고 싶으신 분

😻 로캣냥만의 특별한 기능
실시간으로 친구와 함께하는 보스 레이드
달리면서 쌓이는 공격게이지로 짜릿한 보스 처치
러닝 후 받은 코인으로 귀여운 캐릭터 꾸미기
일별/주별/월별 상세한 러닝 통계

💪 이렇게 사용해보세요!
1️⃣ 친구를 초대하거나 랜덤 매칭으로 파티 구성
2️⃣ 함께 달리며 실시간으로 공유되는 러닝 현황 확인
3️⃣ 보스를 물리치고 획득한 코인으로 캐릭터 꾸미기
4️⃣ 레벨업하고 랭킹에서 나만의 기록 달성하기

👥 팀 소개

박혜원
@hyeOOO
권규리
@rnjs010
김주찬
@PoloCeleste
서성우
@bamtol2
이가람
@garam0107
이혜령
@hyerongii
백엔드 개발
(팀장)
프론트 개발 인프라 개발 백엔드 개발 프론트 개발 프론트 개발
통계 개발, 레이드 게임 개발, 아이템 도트 디자인 메인/통계/옷장/아이템 판매/랭킹/마이페이지 개발 및 디자인 인프라 CI/CD 구축, 워치 센서 살짝, 픽셀아트 디자인, 모바일앱 배포 메인/로그인/옷장/판매/랭킹/마이페이지 API 개발 Wear OS, 모바일 소셜 로그인, 지라 관리 모바일 단 웹소켓, 워치 통신, 게임/뽑기 페이지 구현, UI/UX 디자인

🚀 주요 기능

로그인, 메인 페이지, 랭킹, 유저프로필
소셜 로그인 유저 정보 입력 코칭마크 페이지 메인 페이지
소셜 로그인 유저 정보 입력 코칭마크 페이지 메인 페이지
카카오, 네이버, 구글 3가지의 소셜 회원가입/로그인 기능을 제공합니다. 회원가입을 한 신규 유저는 게임에서 사용할 닉네임, 칼로리 계산을 위한 신체 정보를 입력할 수 있습니다. 코칭 마크를 통해 각 버튼의 기능을 소개합니다. (Skip으로 바로 메인페이지로 이동 가능) 자신의 캐릭터 위의 닉네임을 누르면 세계관 스토리와 소개페이지를 다시 볼 수 있습니다.
자신의 캐릭터 고양이를 누르면 랜덤 메세지가 뜨게 됩니다.
유저 프로필 모달 랭킹 모달
유저 프로필 모달 랭킹 모달
유저정보 모달에서 정보 수정 터치 시 닉네임, 신체 정보를 수정가능하며
중복, 입력 검사 완료시 저장 버튼이 활성화됩니다.
하단에는 회원탈퇴 로그아웃 버튼도 위치해있습니다.
랭킹 모달에서는 유저들의 순위를 볼 수 있습니다.
자신의 순위는 상단에 고정되며 각 플레이어의 프로필 사진도 확인 가능합니다.
통계 페이지, 옷장 페이지, 판매 페이지
통계 페이지 (일별) 통계 페이지 (세부) 통계 페이지 (주별)
통계 페이지 (일별) 통계 페이지 (세부) 통계 페이지 (주별)
일/주/월 페이지는 탭을 터치하거나 슬라이드를 통해 넘어갈 수 있습니다.
일별 데이터는 모든 기록이 최근순으로 보여집니다.
일별 데이터 중 개인 기록 터치 시, 해당 일자에 달린 상세 정보가 모달로 나타납니다. 주/월의 경우 날짜를 선택할 수 잇는 모달이 있습니다.
아이템 뽑기 결과 모달 옷장 페이지 아이템 설명 모달 판매 페이지
아이템 뽑기 결과 모달 옷장 페이지 아이템 설명 모달 판매 페이지
뽑기 버튼을 누르게 되면 100 캔코인이 차감되며, 확률에 의해 아이템이 뜨게됩니다. 뽑기를 통해 수집된 아이템들을 확인할 수 있습니다.
(중복된 아이템은 보이지 않습니다.) 항목별 아이템은 1개씩 착용 가능합니다.
아이템 사진을 누르게 되면 해당 아이템에 관련된 정보를 볼 수 있습니다.
(모달창 색은 등급별로 다르게 나타납니다)
상점에서 자신이 소지한 아이템을 선택하여 판매할 수 있습니다.
(장착중인 아이템은 선택할 수 없습니다.)
게임 페이지
게임 페이지 게임 규칙 모달 방 생성 화면 대기 화면
게임 페이지 게임 규칙 모달 방 생성 화면 대기 화면
? 버튼을 누르면 게임 Rule 모달창이 켜지고,
! 버튼을 누르면 보스 정보 모달창이 켜집니다.
게임 Rule 모달창에서 자세한 게임 방법을 볼 수 있습니다. 방 만들기 버튼 터치 시, 난이도와 인원을 선택할 수 있습니다.
방 생성 버튼을 터치하면 대기 화면으로 넘어갑니다.
생성된 초대코드는 복사 버튼을 통해 복사할 수 있습니다.
현재 인원을 확인할 수 있습니다.
게임 중 화면 싱글 결과 멀티 결과
게임 중 화면 싱글 결과 멀티 결과
모든 인원이 들어오거나, 게임에 입장하게 되면 보이는 화면입니다.
상단에는 선택한 난이도에 해당하는 보스 이미지가 움직이고 있습니다.
싱글 게임에서 패배한 경우 보이는 결과 모달창입니다. 멀티 게임에서 승리한 경우 보이는 결과 모달창입니다.
러닝, 게임과 관련된 상세 정보가 보입니다.
슬라이드로 넘기면 플레이어의 순위가 나타납니다.
워치 페이지
워치 시작 페이지 게임 실행 페이지 플레이어 현황 페이지
워치 시작 페이지 게임 실행 페이지 플레이어 현황 페이지
확인 버튼을 누르면 모바일 앱이 실행됩니다.
(모바일 앱에서만 게임 시작이 가능합니다.)
5초 카운트다운 후 나타나는 사용자의 실시간 러닝 데이터 화면입니다. 플레이어들의 실시간 달린 거리, 공격 횟수 표시 화면입니다.
공격 시 화면 피버타임 화면 게임 종료 화면
공격 시 화면 피버타임 화면 게임 종료 화면
사용가능한 공격 아이템이 있다면 공격 버튼이 활성화됩니다.
(공격 시 1초간 진동으로 알림이 발생하고 참치캔이 날라갑니다.)
모든 플레이어가 2회씩 공격한다면 피버 타임이 시작됩니다.
피버타임은 30초동안 진행되고, 진동이 계속 발생합니다.
정상적으로 게임이 종료되었을 때 나오는 화면입니다.

🎥 시연 영상

메인페이지 로그인/회원가입 메인페이지 튜토리얼 메인페이지 아이템 뽑기
메인페이지 기능 메인페이지 통계
게임페이지 설명/규칙 게임페이지 플레이

🔧 주요 기술

기술스택

🗺️ 기술 아키텍처

아키텍처다이어그램

📂 프로젝트 구조

Back 폴더 구조 보기
📦main
 ┣ 📂java
 ┃ ┗ 📂com
 ┃ ┃ ┗ 📂ssafy
 ┃ ┃ ┃ ┗ 📂roCatRun
 ┃ ┃ ┃ ┃ ┣ 📂api
 ┃ ┃ ┃ ┃ ┃ ┗ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂auth
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokenController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SocialLoginController.java
 ┃ ┃ ┃ ┃ ┣ 📂domain
 ┃ ┃ ┃ ┃ ┃ ┣ 📂boss
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BossController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BossResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Boss.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BossDifficulty.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BossRepository.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BossService.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂game
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AuthenticateRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CreateRoomRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameEndVoteRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JoinRoomRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MatchRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PlayerRunningResultRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RunningDataUpdateRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UseItemRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AuthResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FeverTimeEndedResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FeverTimeStartedResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameCountdownResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameEndVoteResultResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameEndVoteStartedResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameOverResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameReadyResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameResultResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameStartResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameStatusResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MatchStatusResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PlayerDisconnectedResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PlayerJoinedResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PlayerLeftResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PlayerReconnectedResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜roomCreatedResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RoomJoinedResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RunningDataUpdateResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂raid
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜BossLevel.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameResult.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameRoom.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameStatus.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Item.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Player.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RunningData.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂user
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜User.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜UserSession.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserStatus.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameResultRepository.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂manager
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameDisconnectionManager.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameRoomManager.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameTimerManager.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameService.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂gameCharacter
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameCharacterController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameCharacterCreateRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NicknameUpdateRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameCharacterResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RankingListResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RankingResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameCharacter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Level.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameCharacterRepository.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LevelRepository.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameCharacterService.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂inventory
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜InventoryController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜InventoryEquipRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜InventorySellRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜InventoryResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemSellResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Inventory.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜InventoryRepository.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜InventoryService.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂item
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemDrawRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ItemDrawResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Item.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemRepository.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemService.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂member
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MemberController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂oauth
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GoogleLoginDto.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoLoginDto.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NaverLoginDto.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MemberDeleteRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MemberProfileUpdateRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LoginResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂token
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokenRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokenResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokens.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RefreshToken.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂userinfo
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GoogleUserInfoResponseDto.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoUserInfoResponseDto.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NaverUserInfoResponseDto.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Member.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MemberRepository.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RefreshTokenRedisRepository.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂auth
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GoogleService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokenService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NaverService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MemberService.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂myPage
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MyPageController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MyPageUpdateRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MyPageResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MyPageService.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📂stats
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameStatsController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DailyStatsResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MonthlyStatsResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WeeklyStatsResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameStats.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂exception
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameStatsNotFoundException.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameStatsRepository.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameStatsService.java
 ┃ ┃ ┃ ┃ ┣ 📂global
 ┃ ┃ ┃ ┃ ┃ ┣ 📂common
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ApiResponse.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂config
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameConfig.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RedisConfig.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RestTemplateConfig.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜S3Config.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜SecurityConfig.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WebSocketConfig.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂exception
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CustomException.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ErrorCode.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ErrorResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ExceptionCode.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GlobalExceptionHandler.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜InvalidNicknameException.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TokenRefreshException.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂s3
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FileUploadController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UploadResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂exception
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FileDeleteException.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FileUploadException.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜InvalidFileException.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜S3Service.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂security
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂jwt
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂filter
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜JwtAuthenticationFilter.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokenGenerator.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜JwtTokenProvider.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂socket
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜SessionManager.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SocketEventHandler.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂util
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ResponseUtil.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📂validation
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂annotation
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ValidNickname.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂validator
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NicknameValidator.java
 ┃ ┃ ┃ ┃ ┣ 📂health
 ┃ ┃ ┃ ┃ ┃ ┗ 📜SimpleHealthIndicator.java
 ┃ ┃ ┃ ┃ ┗ 📜RoCatRunApplication.java
 ┗ 📂resources
 ┃ ┗ 📜data.sql
  
Front - mobile 폴더 구조 보기
📦main
 ┣ 📂java
 ┃ ┗ 📂com
 ┃ ┃ ┗ 📂eeos
 ┃ ┃ ┃ ┗ 📂rocatrun
 ┃ ┃ ┃ ┃ ┣ 📂api
 ┃ ┃ ┃ ┃ ┃ ┗ 📜RetrofitInstance.kt
 ┃ ┃ ┃ ┃ ┣ 📂closet
 ┃ ┃ ┃ ┃ ┃ ┣ 📂api
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ClosetAPI.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ClosetDataClass.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ClosetViewModel.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜ClosetActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜ClosetScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜GradeInfoScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜ItemInfoScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜SaveCheckScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜SendImage.kt
 ┃ ┃ ┃ ┃ ┣ 📂game
 ┃ ┃ ┃ ┃ ┃ ┣ 📜AlertScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜BossScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜GameplayActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜GameplayScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜GameroomActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜GameroomScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜InfoScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜LoadingActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜LoadingScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜MatchingActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜MatchingScreen.kt
 ┃ ┃ ┃ ┃ ┣ 📂home
 ┃ ┃ ┃ ┃ ┃ ┣ 📂api
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜HomeAPI.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜HomeInfoDataClass.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜HomeViewModel.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜HomeActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜HomeScreen.kt
 ┃ ┃ ┃ ┃ ┣ 📂intro
 ┃ ┃ ┃ ┃ ┃ ┣ 📜IntroActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜IntroScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜StoryScreen.kt
 ┃ ┃ ┃ ┃ ┣ 📂login
 ┃ ┃ ┃ ┃ ┃ ┣ 📂data
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ApiService.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CreateCharacterResponse.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoginResponse.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MemberResponse.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜NicknameCheckResponse.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RetrofitClient.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜TokenManager.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TokenStorage.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📂social
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GoogleWebViewLoginActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoWebViewLoginActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NaverWebViewLoginActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📂util
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MessageBox.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜NicknameCheckHelper.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜NicknameValidator.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Register.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜GlobalApplication.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜LoginActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜LoginButton.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜LoginScreen.kt
 ┃ ┃ ┃ ┃ ┣ 📂ppobgi
 ┃ ┃ ┃ ┃ ┃ ┣ 📂api
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PpobgiAPI.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PpobgiDataClass.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜PpobgiViewModel.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜PpobgiButton.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜PpobgiScreen.kt
 ┃ ┃ ┃ ┃ ┣ 📂profile
 ┃ ┃ ┃ ┃ ┃ ┣ 📂api
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ProfileAPI.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ProfileDataClass.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ProfileViewModel.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜ProfileScreen.kt
 ┃ ┃ ┃ ┃ ┣ 📂ranking
 ┃ ┃ ┃ ┃ ┃ ┣ 📂api
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RankingAPI.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RankingDataClass.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RankingViewModel.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜RankingScreen.kt
 ┃ ┃ ┃ ┃ ┣ 📂result
 ┃ ┃ ┃ ┃ ┃ ┣ 📜LevelUpScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜MultiLoseScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜MultiWinScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜SingleLoseScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜SingleWinScreen.kt
 ┃ ┃ ┃ ┃ ┣ 📂service
 ┃ ┃ ┃ ┃ ┃ ┣ 📜GamePlayService.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜MessageHandlerService.kt
 ┃ ┃ ┃ ┃ ┣ 📂shop
 ┃ ┃ ┃ ┃ ┃ ┣ 📂api
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ShopAPI.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ShopDataClass.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ShopViewModel.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜ShopActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜ShopScreen.kt
 ┃ ┃ ┃ ┃ ┣ 📂socket
 ┃ ┃ ┃ ┃ ┃ ┗ 📜SocketHandler.kt
 ┃ ┃ ┃ ┃ ┣ 📂splash
 ┃ ┃ ┃ ┃ ┃ ┗ 📜SplashActivity.kt
 ┃ ┃ ┃ ┃ ┣ 📂stats
 ┃ ┃ ┃ ┃ ┃ ┣ 📂api
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DailyDataClass.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsAPI.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsViewModel.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WeekMonDataClass.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜CommonUtils.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜DayStatsScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜MonStatsScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsDetailScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜WeekStatsScreen.kt
 ┃ ┃ ┃ ┃ ┣ 📂textgpxviewer
 ┃ ┃ ┃ ┃ ┃ ┣ 📂gpx
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GpxFileHandler.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📂map
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MapboxGPXViewer.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RouteDrawer.kt
 ┃ ┃ ┃ ┃ ┣ 📂ui
 ┃ ┃ ┃ ┃ ┃ ┣ 📂components
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ConfirmDialog.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜format.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GifImage.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ModalBottomBtn.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StrokeText.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📂theme
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Color.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Theme.kt
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Type.kt
 ┃ ┃ ┃ ┃ ┗ 📜MainActivity.kt
 ┣ 📂res
 ┣ 📜AndroidManifest.xml
 ┗ 📜ic_rocatrun-playstore.png
  
Front - wear 폴더 구조 보기
📦main
 ┣ 📂java
 ┃ ┗ 📂com
 ┃ ┃ ┗ 📂eeos
 ┃ ┃ ┃ ┗ 📂rocatrun
 ┃ ┃ ┃ ┃ ┣ 📂constants
 ┃ ┃ ┃ ┃ ┃ ┗ 📜GameRules.kt
 ┃ ┃ ┃ ┃ ┣ 📂detector
 ┃ ┃ ┃ ┃ ┃ ┣ 📜ArmGestureDetector.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜ArmRaiseDetector.kt
 ┃ ┃ ┃ ┃ ┣ 📂presentation
 ┃ ┃ ┃ ┃ ┃ ┣ 📂theme
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Theme.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜CountdownScreen.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜GameState.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜ItemActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜MainActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜NetworkErrorActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜ResultActivity.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜RunningActivity.kt
 ┃ ┃ ┃ ┃ ┣ 📂receiver
 ┃ ┃ ┃ ┃ ┃ ┗ 📜SensorUpdateReceiver.kt
 ┃ ┃ ┃ ┃ ┣ 📂sensor
 ┃ ┃ ┃ ┃ ┃ ┗ 📜SensorMangerHelper.kt
 ┃ ┃ ┃ ┃ ┣ 📂service
 ┃ ┃ ┃ ┃ ┃ ┣ 📜LocationForegroundService.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜MessageHandlerService.kt
 ┃ ┃ ┃ ┃ ┣ 📂ui
 ┃ ┃ ┃ ┃ ┃ ┣ 📜CircularItemGauge.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜FeverTime.kt
 ┃ ┃ ┃ ┃ ┣ 📂util
 ┃ ┃ ┃ ┃ ┃ ┗ 📜FormatUtils.kt
 ┃ ┃ ┃ ┃ ┗ 📂viewmodel
 ┃ ┃ ┃ ┃ ┃ ┣ 📜BossHealthRepository.kt
 ┃ ┃ ┃ ┃ ┃ ┣ 📜GameViewModel.kt
 ┃ ┃ ┃ ┃ ┃ ┗ 📜MultiUserViewModel.kt
 ┣ 📂res
 ┣ 📜AndroidManifest.xml
 ┗ 📜ic_rocatrun-playstore.png
  

📜 산출물

기능 명세서

🔹 소셜 로그인

기능명세서

🔹 메인페이지

기능명세서

🔹 게임 - 레이드

기능명세서

🔹 통계/옷장/마이페이지

기능명세서
erd erd
피그마 피그마 피그마 피그마 피그마
api 명세서

🔹 소셜 로그인

api명세서

🔹 마이페이지

api명세서 api명세서

🔹 레이드

api명세서

🔹 매칭

api명세서

🔹 아이템

api명세서

🔹 통계

api명세서

🔹 캐릭터 정보(메인)

api명세서

🔹 S3 이미지 업로드

api명세서

About

갤럭시 워치 기반의 실시간 러닝 멀티 경쟁 앱

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors