|
1 |
| -# KDT_BE8_Mini-Project: 숙박 예약 API 서비스 |
2 |
| -본 프로젝트는 숙박 예약 서비스를 완성하는 것을 목표로 합니다. |
3 |
| -필요한 설계는 팀별로 직접 구성합니다. |
4 |
| - |
5 |
| -### 프로젝트 기간 : 06/17(월) ~ 07/05 (금), 3주간 |
6 |
| -### 자세한 사항은 [RFP](https://drive.google.com/file/d/1A6jWwX5rhc4_OXAa8RYKm9JgU7vzTmiR/view?usp=sharing) 참고 부탁드립니다. |
7 |
| - |
8 |
| - |
9 |
| -### **[과제 수행 및 제출 방법]** |
10 |
| -1. 기존 저장소(FastCampustKDTBackend/리포지토리)를 Fork합니다. |
11 |
| -2. 자신의 팀명으로 브랜치를 생성합니다.(구분 가능하도록 팀명을 꼭 파스칼케이스로 표시하세요, git branch KDT_BE8_Mini-Project_Team1) |
12 |
| -3. 자신의 팀명 브랜치에서 과제를 수행합니다. |
13 |
| -4. 과제 수행이 완료되면, 자신의 팀명 브랜치를 원격 저장소에 푸시(Push)합니다.(main 브랜치에 푸시하지 않도록 꼭 주의하세요, git push origin KDT_BE8_Mini-Project_Team1) |
14 |
| -5. 저장소에서 main 브랜치를 대상으로 Pull Request 생성하면, 과제 제출이 완료됩니다!(E.g, main <== KDT_BE8_Mini-Project_Team1) |
15 |
| -6. Pull Request 링크를 LMS로도 제출해 주셔야 합니다. |
16 |
| -7. main 혹은 다른 사람의 브랜치로 절대 병합하지 않도록 주의하세요! |
17 |
| -8. Pull Request에서 보이는 설명을 다른 사람들이 이해하기 쉽도록 꼼꼼하게 작성하세요! |
18 |
| -9. Pull Request에서 과제 제출 후 절대 병합(Merge)하지 않도록 주의하세요! |
19 |
| -10. 과제 수행 및 제출 과정에서 문제가 발생한 경우, 바로 담당 멘토나 강사님, 운영진에게 얘기하세요! |
| 1 | +# KDT_BE8_Mini-Project: 숙박 예약 API 서비스 |
| 2 | + |
| 3 | +### 프로젝트 기간 : 06/17(월) ~ 07/05 (금) |
| 4 | + |
| 5 | +## 설정 방법 |
| 6 | + |
| 7 | +<details> |
| 8 | + <summary>Setting</summary> |
| 9 | + <div markdown="1"> |
| 10 | + src/main/resources에 있는 example 파일을 참고하여 yaml 파일 3개 생성 |
| 11 | + </div> |
| 12 | +</details> |
| 13 | + |
| 14 | +## Develop Tool |
| 15 | + |
| 16 | +- Spring Boot 3.3.0 |
| 17 | +- Spring Boot Security |
| 18 | +- Spring Data JPA |
| 19 | +- JWT |
| 20 | +- MySQL |
| 21 | +- Redis |
| 22 | +- Nginx |
| 23 | +- Docker |
| 24 | +- GitHub Actions |
| 25 | + |
| 26 | +## ERD |
| 27 | + |
| 28 | + |
| 29 | + |
| 30 | +## Directory Structure |
| 31 | + |
| 32 | +<details> |
| 33 | + |
| 34 | + <summary>Directory Structure</summary> |
| 35 | + <div markdown="1"> |
| 36 | + |
| 37 | +``` |
| 38 | +┌─ main |
| 39 | +│ ├─java |
| 40 | +│ │ └─com |
| 41 | +│ │ └─group6 |
| 42 | +│ │ └─accommodation |
| 43 | +│ │ │ AccommodationApplication.java |
| 44 | +│ │ │ |
| 45 | +│ │ ├─domain |
| 46 | +│ │ │ ├─accommodation |
| 47 | +│ │ │ │ ├─annotation |
| 48 | +│ │ │ │ │ │ StartBeforeEndAndNullable.java |
| 49 | +│ │ │ │ │ │ ValidArea.java |
| 50 | +│ │ │ │ │ │ ValidCategory.java |
| 51 | +│ │ │ │ │ │ |
| 52 | +│ │ │ │ │ └─validator |
| 53 | +│ │ │ │ │ AreaValidator.java |
| 54 | +│ │ │ │ │ CategoryValidator.java |
| 55 | +│ │ │ │ │ StartBeforeEndAndNullableValidator.java |
| 56 | +│ │ │ │ │ |
| 57 | +│ │ │ │ ├─config |
| 58 | +│ │ │ │ │ OpenapiConfig.java |
| 59 | +│ │ │ │ │ RestTemplateConfig.java |
| 60 | +│ │ │ │ │ |
| 61 | +│ │ │ │ ├─controller |
| 62 | +│ │ │ │ │ AccommodationController.java |
| 63 | +│ │ │ │ │ |
| 64 | +│ │ │ │ ├─converter |
| 65 | +│ │ │ │ │ AccommodationConverter.java |
| 66 | +│ │ │ │ │ |
| 67 | +│ │ │ │ ├─model |
| 68 | +│ │ │ │ │ ├─dto |
| 69 | +│ │ │ │ │ │ AccommodationConditionRequestDto.java |
| 70 | +│ │ │ │ │ │ AccommodationDetailResponseDto.java |
| 71 | +│ │ │ │ │ │ AccommodationResponseDto.java |
| 72 | +│ │ │ │ │ │ ApiResponseDto.java |
| 73 | +│ │ │ │ │ │ |
| 74 | +│ │ │ │ │ ├─entity |
| 75 | +│ │ │ │ │ │ AccommodationEntity.java |
| 76 | +│ │ │ │ │ │ |
| 77 | +│ │ │ │ │ └─enums |
| 78 | +│ │ │ │ │ Area.java |
| 79 | +│ │ │ │ │ Category.java |
| 80 | +│ │ │ │ │ |
| 81 | +│ │ │ │ ├─repository |
| 82 | +│ │ │ │ │ AccommodationRepository.java |
| 83 | +│ │ │ │ │ |
| 84 | +│ │ │ │ ├─scheduler |
| 85 | +│ │ │ │ │ ScheduledTasks.java |
| 86 | +│ │ │ │ │ |
| 87 | +│ │ │ │ ├─service |
| 88 | +│ │ │ │ │ AccommodationApiService.java |
| 89 | +│ │ │ │ │ AccommodationService.java |
| 90 | +│ │ │ │ │ ApiProcessService.java |
| 91 | +│ │ │ │ │ DatabaseInitializationService.java |
| 92 | +│ │ │ │ │ |
| 93 | +│ │ │ │ └─specification |
| 94 | +│ │ │ │ AccommodationSpecification.java |
| 95 | +│ │ │ │ |
| 96 | +│ │ │ ├─auth |
| 97 | +│ │ │ │ ├─controller |
| 98 | +│ │ │ │ │ UserController.java |
| 99 | +│ │ │ │ │ |
| 100 | +│ │ │ │ ├─model |
| 101 | +│ │ │ │ │ ├─dto |
| 102 | +│ │ │ │ │ │ UserRequestDto.java |
| 103 | +│ │ │ │ │ │ UserResponseDto.java |
| 104 | +│ │ │ │ │ │ |
| 105 | +│ │ │ │ │ └─entity |
| 106 | +│ │ │ │ │ UserEntity.java |
| 107 | +│ │ │ │ │ |
| 108 | +│ │ │ │ ├─repository |
| 109 | +│ │ │ │ │ UserRepository.java |
| 110 | +│ │ │ │ │ |
| 111 | +│ │ │ │ └─service |
| 112 | +│ │ │ │ UserService.java |
| 113 | +│ │ │ │ |
| 114 | +│ │ │ ├─likes |
| 115 | +│ │ │ │ ├─controller |
| 116 | +│ │ │ │ │ UserLikeController.java |
| 117 | +│ │ │ │ │ |
| 118 | +│ │ │ │ ├─model |
| 119 | +│ │ │ │ │ ├─dto |
| 120 | +│ │ │ │ │ │ UserLikeResponseDto.java |
| 121 | +│ │ │ │ │ │ |
| 122 | +│ │ │ │ │ └─entity |
| 123 | +│ │ │ │ │ UserLikeEntity.java |
| 124 | +│ │ │ │ │ UserLikeId.java |
| 125 | +│ │ │ │ │ |
| 126 | +│ │ │ │ ├─repository |
| 127 | +│ │ │ │ │ UserLikeRepository.java |
| 128 | +│ │ │ │ │ |
| 129 | +│ │ │ │ └─service |
| 130 | +│ │ │ │ UserLikeService.java |
| 131 | +│ │ │ │ |
| 132 | +│ │ │ ├─reservation |
| 133 | +│ │ │ │ ├─annotation |
| 134 | +│ │ │ │ │ │ StartBeforeEnd.java |
| 135 | +│ │ │ │ │ │ |
| 136 | +│ │ │ │ │ └─validator |
| 137 | +│ │ │ │ │ StartBeforeEndValidator.java |
| 138 | +│ │ │ │ │ |
| 139 | +│ │ │ │ ├─controller |
| 140 | +│ │ │ │ │ ReserveController.java |
| 141 | +│ │ │ │ │ |
| 142 | +│ │ │ │ ├─converter |
| 143 | +│ │ │ │ │ ReservationConverter.java |
| 144 | +│ │ │ │ │ |
| 145 | +│ │ │ │ ├─model |
| 146 | +│ │ │ │ │ ├─dto |
| 147 | +│ │ │ │ │ │ PostReserveRequestDto.java |
| 148 | +│ │ │ │ │ │ ReserveListItemDto.java |
| 149 | +│ │ │ │ │ │ ReserveResponseDto.java |
| 150 | +│ │ │ │ │ │ |
| 151 | +│ │ │ │ │ └─entity |
| 152 | +│ │ │ │ │ ReservationEntity.java |
| 153 | +│ │ │ │ │ |
| 154 | +│ │ │ │ ├─repository |
| 155 | +│ │ │ │ │ ReservationRepository.java |
| 156 | +│ │ │ │ │ |
| 157 | +│ │ │ │ └─service |
| 158 | +│ │ │ │ ReserveService.java |
| 159 | +│ │ │ │ |
| 160 | +│ │ │ └─room |
| 161 | +│ │ │ ├─annotation |
| 162 | +│ │ │ │ CheckOutAfterOrEqualCheckIn.java |
| 163 | +│ │ │ │ |
| 164 | +│ │ │ ├─controller |
| 165 | +│ │ │ │ RoomController.java |
| 166 | +│ │ │ │ |
| 167 | +│ │ │ ├─converter |
| 168 | +│ │ │ │ RoomConverter.java |
| 169 | +│ │ │ │ |
| 170 | +│ │ │ ├─model |
| 171 | +│ │ │ │ ├─dto |
| 172 | +│ │ │ │ │ AvailableRoomsReq.java |
| 173 | +│ │ │ │ │ AvailableRoomsRes.java |
| 174 | +│ │ │ │ │ RoomDto.java |
| 175 | +│ │ │ │ │ |
| 176 | +│ │ │ │ └─entity |
| 177 | +│ │ │ │ RoomEntity.java |
| 178 | +│ │ │ │ |
| 179 | +│ │ │ ├─repository |
| 180 | +│ │ │ │ RoomRepository.java |
| 181 | +│ │ │ │ |
| 182 | +│ │ │ ├─service |
| 183 | +│ │ │ │ ApiProcessRoomService.java |
| 184 | +│ │ │ │ RoomApiService.java |
| 185 | +│ │ │ │ RoomService.java |
| 186 | +│ │ │ │ |
| 187 | +│ │ │ └─validator |
| 188 | +│ │ │ RoomPeriodValidator.java |
| 189 | +│ │ │ |
| 190 | +│ │ └─global |
| 191 | +│ │ ├─exception |
| 192 | +│ │ │ │ ExceptionAdvice.java |
| 193 | +│ │ │ │ ExceptionResponse.java |
| 194 | +│ │ │ │ |
| 195 | +│ │ │ ├─error |
| 196 | +│ │ │ │ AccommodationErrorCode.java |
| 197 | +│ │ │ │ AuthErrorCode.java |
| 198 | +│ │ │ │ ErrorCode.java |
| 199 | +│ │ │ │ ExampleErrorCode.java |
| 200 | +│ │ │ │ ReservationErrorCode.java |
| 201 | +│ │ │ │ RoomErrorCode.java |
| 202 | +│ │ │ │ UserLikeErrorCode.java |
| 203 | +│ │ │ │ |
| 204 | +│ │ │ └─type |
| 205 | +│ │ │ AccommodationException.java |
| 206 | +│ │ │ AuthException.java |
| 207 | +│ │ │ CustomException.java |
| 208 | +│ │ │ ReservationException.java |
| 209 | +│ │ │ RoomException.java |
| 210 | +│ │ │ UserLikeException.java |
| 211 | +│ │ │ ValidException.java |
| 212 | +│ │ │ |
| 213 | +│ │ ├─filter |
| 214 | +│ │ │ LoggerFilter.java |
| 215 | +│ │ │ |
| 216 | +│ │ ├─model |
| 217 | +│ │ │ └─dto |
| 218 | +│ │ │ PagedDto.java |
| 219 | +│ │ │ |
| 220 | +│ │ ├─redis |
| 221 | +│ │ │ ├─config |
| 222 | +│ │ │ │ RedisConfig.java |
| 223 | +│ │ │ │ |
| 224 | +│ │ │ ├─model |
| 225 | +│ │ │ │ RefreshToken.java |
| 226 | +│ │ │ │ |
| 227 | +│ │ │ └─repository |
| 228 | +│ │ │ RefreshTokenRepository.java |
| 229 | +│ │ │ |
| 230 | +│ │ ├─security |
| 231 | +│ │ │ ├─config |
| 232 | +│ │ │ │ CorsConfig.java |
| 233 | +│ │ │ │ SecurityConfig.java |
| 234 | +│ │ │ │ WebSecurityConfig.java |
| 235 | +│ │ │ │ |
| 236 | +│ │ │ ├─exception |
| 237 | +│ │ │ │ │ CustomAuthenticationEntryPoint.java |
| 238 | +│ │ │ │ │ NotFoundErrorController.java |
| 239 | +│ │ │ │ │ |
| 240 | +│ │ │ │ └─dto |
| 241 | +│ │ │ │ SecurityExceptionDto.java |
| 242 | +│ │ │ │ |
| 243 | +│ │ │ ├─filter |
| 244 | +│ │ │ │ JwtFilter.java |
| 245 | +│ │ │ │ LoginAuthenticationFilter.java |
| 246 | +│ │ │ │ |
| 247 | +│ │ │ ├─service |
| 248 | +│ │ │ │ CustomUserDetails.java |
| 249 | +│ │ │ │ CustomUserDetailsService.java |
| 250 | +│ │ │ │ |
| 251 | +│ │ │ └─token |
| 252 | +│ │ │ ├─model |
| 253 | +│ │ │ │ └─dto |
| 254 | +│ │ │ │ LoginTokenRequestDto.java |
| 255 | +│ │ │ │ LoginTokenResponseDto.java |
| 256 | +│ │ │ │ |
| 257 | +│ │ │ ├─provider |
| 258 | +│ │ │ │ TokenProvider.java |
| 259 | +│ │ │ │ |
| 260 | +│ │ │ └─service |
| 261 | +│ │ ├─swagger |
| 262 | +│ │ │ SwaggerConfig.java |
| 263 | +│ │ │ |
| 264 | +│ │ └─util |
| 265 | +│ │ Response.java |
| 266 | +│ │ ResponseApi.java |
| 267 | +│ │ |
| 268 | +│ └─resources |
| 269 | +│ application-dev.yaml |
| 270 | +│ application-dev.yaml.example |
| 271 | +│ application-prod.yaml |
| 272 | +│ application-prod.yaml.example |
| 273 | +│ application.yaml |
| 274 | +│ application.yaml.example |
| 275 | +│ |
| 276 | +└─test |
| 277 | + └─java |
| 278 | + └─com |
| 279 | + └─group6 |
| 280 | + └─accommodation |
| 281 | + │ AccommodationApplicationTests.java |
| 282 | + │ |
| 283 | + └─domain |
| 284 | + ├─accommodation |
| 285 | + │ ├─controller |
| 286 | + │ │ AccommodationControllerTest.java |
| 287 | + │ │ |
| 288 | + │ ├─model |
| 289 | + │ │ ├─dto |
| 290 | + │ │ │ AccommodationDetailResponseDtoTest.java |
| 291 | + │ │ │ AccommodationResponseDtoTest.java |
| 292 | + │ │ │ |
| 293 | + │ │ ├─entity |
| 294 | + │ │ │ AccommodationEntityTest.java |
| 295 | + │ │ │ |
| 296 | + │ │ └─enums |
| 297 | + │ │ AreaTest.java |
| 298 | + │ │ CategoryTest.java |
| 299 | + │ │ |
| 300 | + │ ├─repository |
| 301 | + │ │ AccommodationRepositoryTest.java |
| 302 | + │ │ |
| 303 | + │ ├─service |
| 304 | + │ │ AccommodationServiceTest.java |
| 305 | + │ │ |
| 306 | + │ └─specification |
| 307 | + │ AccommodationSpecificationTest.java |
| 308 | + │ |
| 309 | + ├─auth |
| 310 | + │ ├─controller |
| 311 | + │ │ UserControllerTest.java |
| 312 | + │ │ |
| 313 | + │ ├─mock |
| 314 | + │ │ WithMockCustomUser.java |
| 315 | + │ │ WithMockCustomUserSecurityContextFactory.java |
| 316 | + │ │ |
| 317 | + │ ├─repository |
| 318 | + │ │ UserRepositoryTest.java |
| 319 | + │ │ |
| 320 | + │ └─service |
| 321 | + │ UserServiceTest.java |
| 322 | + │ |
| 323 | + ├─likes |
| 324 | + │ ├─controller |
| 325 | + │ │ UserLikeControllerTest.java |
| 326 | + │ │ |
| 327 | + │ ├─model |
| 328 | + │ │ ├─dto |
| 329 | + │ │ │ UserLikeResponseDtoTest.java |
| 330 | + │ │ │ |
| 331 | + │ │ └─entity |
| 332 | + │ │ UserLikeEntityTest.java |
| 333 | + │ │ |
| 334 | + │ ├─repository |
| 335 | + │ │ UserLikeRepositoryTest.java |
| 336 | + │ │ |
| 337 | + │ └─service |
| 338 | + │ UserLikeServiceTest.java |
| 339 | + │ |
| 340 | + ├─reservation |
| 341 | + │ ├─config |
| 342 | + │ │ TestDatabaseConfig.java |
| 343 | + │ │ |
| 344 | + │ ├─controller |
| 345 | + │ │ ReserveControllerTest.java |
| 346 | + │ │ |
| 347 | + │ ├─repository |
| 348 | + │ │ ReservationRepositoryTest.java |
| 349 | + │ │ |
| 350 | + │ └─service |
| 351 | + │ ReserveServiceLockTest.java |
| 352 | + │ ReserveServiceTest.java |
| 353 | + │ |
| 354 | + └─room |
| 355 | + ├─controller |
| 356 | + │ RoomControllerTest.java |
| 357 | + │ |
| 358 | + ├─repository |
| 359 | + │ RoomRepositoryTest.java |
| 360 | + │ |
| 361 | + └─service |
| 362 | + RoomServiceTest.java |
| 363 | +``` |
| 364 | +</div> |
| 365 | +</details> |
| 366 | + |
| 367 | + |
20 | 368 |
|
0 commit comments