Skip to content

Commit b263b30

Browse files
authored
✨ [Merge] 파티기능 포함된 dev 브랜치 merge (#783)
1 parent 6750363 commit b263b30

561 files changed

Lines changed: 16403 additions & 1163 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/checkstyle-validation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: 👮Checkstyle validation
22

33
on:
44
pull_request:
5-
branches: [ main, dev ]
5+
branches: [ main, dev , recruit-dev]
66

77
jobs:
88
checkstyle:

.github/workflows/test-code-validation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: 💻 Test code validation
22

33
on:
44
pull_request:
5-
branches: [ main, dev ]
5+
branches: [ main, dev, recruit-dev]
66

77
jobs:
88
test:

.gitignore

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ build/
77
gg-pingpong-api/src/main/resources/application.yml
88
.DS_Store
99
python
10-
/logs
10+
**/logs
11+
**/src/main/generated/
1112

1213

1314
### STS ###
@@ -27,9 +28,11 @@ bin/
2728
*.iws
2829
*.iml
2930
*.ipr
31+
*.log
3032
out/
3133
!**/src/main/**/out/
3234
!**/src/test/**/out/
35+
**/generated
3336

3437
### NetBeans ###
3538
/nbproject/private/
@@ -46,7 +49,9 @@ out/
4649
pingping.pem
4750

4851
### logs ###
49-
./logs/*
52+
**/logs/*
5053

5154
### git commit message convention file ###
5255
.gitmessage.txt
56+
57+
**/generated

README.md

Lines changed: 103 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,18 @@ https://42gg.kr/
3737

3838
- 4기: 2023.08.01 ~ 2023.09.21
3939

40+
- 5기 : 2023.11.01 ~ 2024.01.31
41+
4042
## ⚡️ 프로젝트 아키텍처
41-
<img alt="systemArchitecture" src="https://github.com/42organization/42gg.server.dev.v2/assets/67796301/c51e8d73-d8f2-4f5e-935c-325ec263857e" >&nbsp;&nbsp;&nbsp;&nbsp;
43+
![gg-5th-architecture](https://github.com/42organization/42gg.server.dev.v2/assets/33301153/f801e7b5-d579-467b-9ad0-2bfec506dcaa)
44+
45+
4246

43-
## ⚡️ 3기 진행 사항
47+
## ⚡️ 팀소개
48+
### 3기
49+
<details>
50+
<summary> 3기 진행 사항</summary>
51+
<div markdown="1">
4452

4553
### ⚡️⚡ 로그인 연동 추가
4654
- v1에서 지원하지 않던 카카오계정 연동 기능 추가(좌 : v1, 우: v2) </br></br>
@@ -77,30 +85,9 @@ https://42gg.kr/
7785
<img width=80% alt="dockerPs" src="https://github.com/42organization/42gg.server.dev.v2/assets/67796301/7da03342-14ed-47c7-9183-a68ad663109c" >&nbsp;&nbsp;&nbsp;&nbsp;
7886
</div>
7987

80-
## ⚡️ 4기 진행 사항
81-
### ⚡️⚡ DB table 구조 변경
82-
- 상점, 티어 등 서비스 확장을 위한 DB 재설계
83-
<img width="1103" alt="ERD V3" src="https://github.com/8luerose/42GG_Server/assets/105616046/a1eb2c31-53cc-4c12-94ff-5ca51ec2d522">
84-
85-
### ⚡️⚡ 재화 시스템 추가
86-
- 출석, 게임 승패에 연관해 재화 시스템 추가
87-
<img width="400" alt="attendance" src="https://github.com/42organization/42gg.server.dev.v2/assets/95139402/caa564c8-cb1b-45eb-975c-9e685911e764">
88-
89-
### ⚡️⚡ 상점, 아이템 서비스 추가
90-
- 유저 요구사항을 반영한 기능 확장
91-
<img width="629" alt="스크린샷 2023-09-23 오후 11 48 01" src="https://github.com/8luerose/42GG_Server/assets/105616046/77ce958b-5901-4638-9833-ab27cc182e88">
92-
<img width="689" alt="스크린샷 2023-09-23 오후 11 48 18" src="https://github.com/8luerose/42GG_Server/assets/105616046/f953cbc4-9d97-4485-b318-4fe73e3e3222">
93-
94-
### ⚡️⚡ 티어 시스템 추가
95-
- 랭킹전 활성화를 위한 티어 시스템 추가
96-
<img width="400" alt="tier" src="https://github.com/42organization/42gg.server.dev.v2/assets/95139402/342e0013-13e0-4482-84b5-4381df0498cf">
97-
98-
### ⚡️⚡ 관리자 페이지 구현
99-
- 원활한 운영을 위한 관리자 기능 추가
100-
<img width="400" alt="admin" src="https://github.com/42organization/42gg.server.dev.v2/assets/95139402/59756773-48f3-463a-91e4-6bb263aac2f5">
88+
</div>
89+
</details>
10190

102-
## ⚡️ 팀소개
103-
### 3기
10491
<table>
10592
<thead>
10693
<tr>
@@ -129,7 +116,37 @@ https://42gg.kr/
129116

130117
</table>
131118

119+
120+
132121
### 4기
122+
<details>
123+
<summary> 4기 진행 사항</summary>
124+
<div markdown="1">
125+
126+
### ⚡️⚡ DB table 구조 변경
127+
- 상점, 티어 등 서비스 확장을 위한 DB 재설계
128+
<img width="1103" alt="ERD V3" src="https://github.com/8luerose/42GG_Server/assets/105616046/a1eb2c31-53cc-4c12-94ff-5ca51ec2d522">
129+
130+
### ⚡️⚡ 재화 시스템 추가
131+
- 출석, 게임 승패에 연관해 재화 시스템 추가
132+
<img width="400" alt="attendance" src="https://github.com/42organization/42gg.server.dev.v2/assets/95139402/caa564c8-cb1b-45eb-975c-9e685911e764">
133+
134+
### ⚡️⚡ 상점, 아이템 서비스 추가
135+
- 유저 요구사항을 반영한 기능 확장
136+
<img width="629" alt="스크린샷 2023-09-23 오후 11 48 01" src="https://github.com/8luerose/42GG_Server/assets/105616046/77ce958b-5901-4638-9833-ab27cc182e88">
137+
<img width="689" alt="스크린샷 2023-09-23 오후 11 48 18" src="https://github.com/8luerose/42GG_Server/assets/105616046/f953cbc4-9d97-4485-b318-4fe73e3e3222">
138+
139+
### ⚡️⚡ 티어 시스템 추가
140+
- 랭킹전 활성화를 위한 티어 시스템 추가
141+
<img width="400" alt="tier" src="https://github.com/42organization/42gg.server.dev.v2/assets/95139402/342e0013-13e0-4482-84b5-4381df0498cf">
142+
143+
### ⚡️⚡ 관리자 페이지 구현
144+
- 원활한 운영을 위한 관리자 기능 추가
145+
<img width="400" alt="admin" src="https://github.com/42organization/42gg.server.dev.v2/assets/95139402/59756773-48f3-463a-91e4-6bb263aac2f5">
146+
147+
</div>
148+
</details>
149+
133150
<table>
134151
<thead>
135152
<tr>
@@ -157,8 +174,66 @@ https://42gg.kr/
157174

158175
</table>
159176

177+
### 5기
178+
<details>
179+
<summary> 5기 진행 사항</summary>
180+
<div markdown="1">
181+
182+
### ⚡️⚡ 토너먼트 개발
183+
<img width="437" alt="5th-tournament" src="https://github.com/42organization/42gg.server.dev.v2/assets/33301153/edae9ab7-b871-4c33-9d2a-d571615b9a6f">
184+
185+
### ⚡️⚡ 테스트 커버리지 개선 (2024-03-19 기준)
186+
### 전체 68% -> 74%
187+
<img width="878" alt="5th-test-coverage-total" src="https://github.com/42organization/42gg.server.dev.v2/assets/33301153/a479b541-c93c-45bb-a75f-ecaa2332ab16">
188+
189+
### 단위 테스트 0% -> 30%
190+
<img width="1312" alt="5th-test-coverage-unit" src="https://github.com/42organization/42gg.server.dev.v2/assets/33301153/1eeb1495-d500-4345-b1d2-ba1cfe4ec6c4">
191+
192+
193+
### ⚡️⚡ 아키텍처 변경
194+
### BEFORE
195+
<img alt="systemArchitecture" src="https://github.com/42organization/42gg.server.dev.v2/assets/67796301/c51e8d73-d8f2-4f5e-935c-325ec263857e" >&nbsp;&nbsp;&nbsp;&nbsp;
196+
### AFTER
197+
![gg-5th-architecture](https://github.com/42organization/42gg.server.dev.v2/assets/33301153/f801e7b5-d579-467b-9ad0-2bfec506dcaa)
198+
199+
### ⚡️⚡ DB table 구조 변경
200+
![image](https://github.com/42organization/42gg.server.dev.v2/assets/33301153/d4c68d74-590c-41db-9c47-0bdd4f249bc3)
201+
202+
203+
</div>
204+
</details>
205+
206+
<table>
207+
<thead>
208+
<tr>
209+
<td align=center>🏓</td>
210+
<td align=center>🏓</td>
211+
<td align=center>🏓</td>
212+
<td align=center>🏓</td>
213+
<td align=center>🏓</td>
214+
</tr>
215+
</thead>
216+
<tr>
217+
<td align=center><a href="https://github.com/kokomong2">고승준 @kokomong2</a></td>
218+
<td align=center><a href="https://github.com/Kimhan-nah">김한나 @Kimhan-nah</a></td>
219+
<td align=center><a href="https://github.com/Newsujin">박수진 @Newsujin</a></td>
220+
<td align=center><a href="https://github.com/SONGS4RI"> 이자훈 @SONGS4RI</a></td>
221+
<td align=center><a href="https://github.com/middlefitting">정승철 @middlefitting</a></td>
222+
</tr>
223+
<tr>
224+
<td align=center>토너먼트 개발, <br> 테스트 커버리지 개선</td>
225+
<td align=center>팀장, 토너먼트 개발, <br> 테스트 커버리지 개선</td>
226+
<td align=center>토너먼트 개발, <br> 테스트 커버리지 개선</td>
227+
<td align=center>토너먼트 개발, <br> 테스트 커버리지 개선</td>
228+
<td align=center>인프라 담당, <br> 테스트 커버리지 개선</td>
229+
</tr>
230+
</table>
160231

161232
## ⚡️ 필요 파일
233+
<details>
234+
<summary> application.yml </summary>
235+
<div markdown="1">
236+
162237
다음과 같은 양식의 "application.yml"파일이 "src/main/resources/"경로에 필요합니다.
163238
```
164239
spring:
@@ -319,3 +394,6 @@ app:
319394
refreshTokenExpiry: ""
320395
321396
```
397+
398+
</div>
399+
</details>

build.gradle

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ editorconfig {
1313
}
1414

1515
springBoot {
16-
mainClass = "gg.pingpong.api.PingPongApiApplication"
16+
mainClass = "gg.PingPongApiApplication"
1717
}
1818

1919
group = 'io.42pp'
@@ -56,6 +56,9 @@ subprojects {
5656
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
5757
implementation 'org.redisson:redisson:3.17.3'
5858

59+
//devtools
60+
implementation 'org.springframework.boot:spring-boot-devtools'
61+
5962
/* spring doc */
6063
implementation 'org.springdoc:springdoc-openapi-ui:1.6.6'
6164

@@ -88,6 +91,10 @@ subprojects {
8891
testImplementation "org.junit.jupiter:junit-jupiter:5.8.1"
8992
testImplementation "org.testcontainers:testcontainers:1.19.3"
9093
testImplementation "org.testcontainers:junit-jupiter:1.19.3"
94+
95+
// mapstruct 추가
96+
implementation 'org.mapstruct:mapstruct:1.5.5.Final'
97+
annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final'
9198
}
9299

93100
//테스트 커버리지 측정도구
@@ -243,6 +250,30 @@ project(':gg-pingpong-api') {
243250
implementation project(':gg-repo')
244251
implementation project(':gg-admin-repo')
245252
implementation project(':gg-utils')
253+
implementation project(':gg-auth')
254+
implementation project(':gg-recruit-api')
255+
}
256+
}
257+
258+
project(':gg-recruit-api') {
259+
bootJar { enabled = false }
260+
jar { enabled = true }
261+
dependencies {
262+
implementation project(':gg-data')
263+
implementation project(':gg-repo')
264+
implementation project(':gg-admin-repo')
265+
implementation project(':gg-utils')
266+
implementation project(':gg-auth')
267+
}
268+
}
269+
270+
project(':gg-auth') {
271+
bootJar { enabled = false }
272+
jar { enabled = true }
273+
dependencies {
274+
implementation project(':gg-data')
275+
implementation project(':gg-repo')
276+
implementation project(':gg-utils')
246277
}
247278
}
248279

codecov.yml

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,18 @@ flags:
1313
unitTest:
1414
paths:
1515
- gg-pingpong-api/src/main/java/gg/pingpong/api
16-
- gg-pingpong-repo/src/main/java/gg/pingpong/repo
17-
- gg-pingpong-admin-repo/src/main/java/gg/pingpong/admin/repo
18-
- gg-pingpong-data/src/main/java/gg/pingpong/data
16+
- gg-repo/src/main/java/gg/repo
17+
- gg-admin-repo/src/main/java/gg/admin/repo
18+
- gg-data/src/main/java/gg/data
19+
- gg-auth/src/main/java/gg/auth
20+
- gg-utils/src/main/java/gg/utils
21+
- gg-recruit-api/src/main/java/gg/recruit/api
1922
integrationTest:
2023
paths:
2124
- gg-pingpong-api/src/main/java/gg/pingpong/api
22-
- gg-pingpong-repo/src/main/java/gg/pingpong/repo
23-
- gg-pingpong-admin-repo/src/main/java/gg/pingpong/admin/repo
24-
- gg-pingpong-data/src/main/java/gg/pingpong/data
25+
- gg-repo/src/main/java/gg/repo
26+
- gg-admin-repo/src/main/java/gg/admin/repo
27+
- gg-data/src/main/java/gg/data
28+
- gg-auth/src/main/java/gg/auth
29+
- gg-utils/src/main/java/gg/utils
30+
- gg-recruit-api/src/main/java/gg/recruit/api
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package gg.admin.repo.category;
2+
3+
import java.util.Optional;
4+
5+
import org.springframework.data.jpa.repository.JpaRepository;
6+
7+
import gg.data.party.Category;
8+
9+
public interface CategoryAdminRepository extends JpaRepository<Category, Long> {
10+
boolean existsByName(String categoryName);
11+
12+
Optional<Category> findByName(String categoryName);
13+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package gg.admin.repo.comment;
2+
3+
import org.springframework.data.jpa.repository.JpaRepository;
4+
5+
import gg.data.party.Comment;
6+
7+
public interface CommentAdminRepository extends JpaRepository<Comment, Long> {
8+
}

gg-admin-repo/src/main/java/gg/admin/repo/game/GameAdminRepository.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
import org.springframework.data.repository.query.Param;
1111

1212
import gg.admin.repo.game.out.GameTeamUser;
13-
import gg.data.game.Game;
14-
import gg.data.game.type.Mode;
15-
import gg.data.game.type.StatusType;
16-
import gg.data.season.Season;
13+
import gg.data.pingpong.game.Game;
14+
import gg.data.pingpong.game.type.Mode;
15+
import gg.data.pingpong.game.type.StatusType;
16+
import gg.data.pingpong.season.Season;
1717

1818
public interface GameAdminRepository extends JpaRepository<Game, Long> {
1919

@@ -33,8 +33,10 @@ public interface GameAdminRepository extends JpaRepository<Game, Long> {
3333
+ "order by t1.startTime desc;", nativeQuery = true)
3434
List<GameTeamUser> findTeamsByGameIsIn(@Param("games") List<Long> games);
3535

36-
@Query(value = "SELECT g FROM Game g, Team t, TeamUser tu WHERE g.status = :status AND g.id = t.game.id"
37-
+ " AND t.id = tu.team.id AND tu.user.id = :userId")
36+
@Query(value = "SELECT g FROM Game g "
37+
+ "INNER JOIN Team t ON g.id = t.game.id "
38+
+ "INNER JOIN TeamUser tu ON tu.team.id = t.id "
39+
+ "WHERE g.status = :status AND tu.user.id = :userId")
3840
Optional<Game> findByStatusTypeAndUserId(@Param("status") StatusType status, @Param("userId") Long userId);
3941

4042
@Query(value = "SELECT g FROM Game g JOIN FETCH g.season WHERE g.id = :gameId")

gg-admin-repo/src/main/java/gg/admin/repo/game/PChangeAdminRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import org.springframework.data.jpa.repository.JpaRepository;
44

5-
import gg.data.game.PChange;
5+
import gg.data.pingpong.game.PChange;
66

77
public interface PChangeAdminRepository extends JpaRepository<PChange, Long>, PChangeAdminRepositoryCustom {
88
}

0 commit comments

Comments
 (0)