Skip to content

TR1LL1ON/TR1LL1ON_BE

Repository files navigation

트릴리언 아키텍처

trillion_architecture

KPT 기간 보완사항

  • 무한 스크롤
  • 찜 기능
  • 마이페이지 조회
  • 리뷰 조회
    • 성능개선
  • 페이지네이션

페이지 구현 예시

트릴리언 로그인

트릴리언 2

트릴리언 3

개요

■ 프로젝트명


■ 기간, 참여인원

  • 11/20(월) ~ 12/01(금)
  • FE 5명 BE 4명

✨ 팀 소개

서은 (BE)
팀장
김수빈 (BE)
팀원
성지운 (BE)
팀원
전유림 (BE)
팀원
WestSilver99 Su-daa sungjiwoon yurim0628
WestSilver99 Su-daa sungjiwoon yurim0628
  • 초기설정(깃허브)
  • 장바구니
  • 초기설정(깃허브)
  • 숙소전체조회(무한스크롤)
  • 상품 상세 조회
  • 상품 결제
  • 찜 기능
  • CI/CD 서버 배포
  • OPEN API
  • 시큐리티
  • 리뷰
  • 마이페이지

■ 목적

  • 숙박 예약 서비스를 완성 및 협업

📚 주요 기능

로그인/회원가입 숙소/객실
예약/장바구니 결제
예약내역/리뷰작성 주변숙소 검색
chatting/painting
카테고리
category



구현 환경


Spring springboot springsecurity


mysql


image


협업

  • Discord
  • Agile - Scrum

Git

  • Git-Flow 사용

image


Commit log

Feat : 새로운 기능 추가
Fix : 버그 수정
Style : 코드 스타일 수정 (세미 콜론, 인덴트 등의 스타일적인 부분만)
Refactor : 코드 리팩토링 (더 효율적인 코드로 변경 등)
Design : CSS 등 디자인 추가/수정
Comment : 주석 추가/수정
Docs : 내부 문서 추가/수정
Test : 테스트 추가/수정
Chore : 빌드 관련 코드 수정, 개발 환경 관련 설정(과거 Env)
Move : 파일 및 폴더명 수정(과거 Rename)
Remove : 파일 삭제

Branch Naming

feature/#이슈번호_간단 설명(주제)

image


ERD

트릴리언


API

■ 로그인 API

  • 회원가입
http://localhost:8080/auth/signup

image

  • 로그인
http://localhost:8080/auth/login

image

  • 로그아웃
http://localhost:8080/auth/logout

image

  • 리프레쉬 토큰
http://localhost:8080/auth/refreshAccessToken

image

■ 마이페이지 API

  • 마이페이지
http://localhost:8080/user

image

  • 마이페이지 - 주문내역 상세
http://localhost:8080/user/details/{orderId}

image

■ 숙소 API

  • 전체 숙소 조회
http://localhost:8080/products

image

  • 개인화 용 숙소 조회
http://localhost:8080/products
  • 카테고리 별 숙소 조회
http://localhost:8080/products?category={카테고리 코드}
  • 지역별 숙소 조회
http://localhost:8080/products?areacode={지역코드}
  • 지역별 & 카테고리 별 숙소 조회
http://localhost:8080/products?category={카테고리 코드}&region={지역코드}

■ 상품 API

  • 개별 상품 요약 조회
http://localhost:8080/products/{accommodation_id}

image

  • 상품 요약 조회
http://localhost:8080/products/summary

image

  • 개별 상품 상세페이지 조회
http://localhost:8080/products/{accommodation_id}/{product_id}

image

■ 주문 API

  • 상품 주문하기
http://localhost:8080/orders

image

■ 장바구니 API

  • 장바구니 상품 전체 조회
http://localhost:8080/carts

image

  • 장바구니에 상품 추가
http://localhost:8080/carts/{product_id}

image

  • 장바구니에 상품 삭제
http://localhost:8080/carts/{cartItem_id}

image

■ 리뷰 API

  • 내 리뷰 조회
http://localhost:8080/reviews

image

  • 숙소 리뷰 조회
http://localhost:8080/reviews/{accommodationId}

image

  • 리뷰 작성
http://localhost:8080/reviews

image

  • 리뷰 수정
http://localhost:8080/reviews/{review_id}

image

  • 리뷰 삭제
http://localhost:8080/reviews/{review_id}

image


패키지 구조

├── main
│   ├── java
│   │   └── com
│   │       └── ybe
│   │           └── tr1ll1on
│   │               ├── AppStartupRunner.java
│   │               ├── Tr1ll1onApplication.java
│   │               ├── domain
│   │               │   ├── accommodation
│   │               │   │   ├── controller
│   │               │   │   │   └── AccommodationController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   └── AccommodationRequest.java
│   │               │   │   │   └── response
│   │               │   │   │       └── AccommodationResponse.java
│   │               │   │   ├── model
│   │               │   │   │   ├── Accommodation.java
│   │               │   │   │   ├── AccommodationFacility.java
│   │               │   │   │   ├── AccommodationImage.java
│   │               │   │   │   └── Category.java
│   │               │   │   ├── repository
│   │               │   │   │   ├── AccommodationFacilityRepository.java
│   │               │   │   │   ├── AccommodationImageRepository.java
│   │               │   │   │   ├── AccommodationMapper.java
│   │               │   │   │   ├── AccommodationRepository.java
│   │               │   │   │   └── CategoryRepository.java
│   │               │   │   └── service
│   │               │   │       └── AccommodationService.java
│   │               │   ├── cart
│   │               │   │   ├── controller
│   │               │   │   │   └── CartController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   ├── AddCartItemRequest.java
│   │               │   │   │   │   └── CartRequest.java
│   │               │   │   │   └── response
│   │               │   │   │       ├── AddCartItemResponse.java
│   │               │   │   │       └── CartResponse.java
│   │               │   │   ├── exception
│   │               │   │   │   ├── CartIdNotFoundException.java
│   │               │   │   │   ├── CartIdNotFoundExceptionCode.java
│   │               │   │   │   ├── CartItemIdNotFoundException.java
│   │               │   │   │   ├── CartItemIdNotFoundExceptionCode.java
│   │               │   │   │   ├── ProductNotExistException.java
│   │               │   │   │   ├── ProductNotExsitExceptionCode.java
│   │               │   │   │   ├── UserAlreadyHasCartException.java
│   │               │   │   │   ├── UserAlreadyHasCartExceptionCode.java
│   │               │   │   │   ├── UserNotFoundException.java
│   │               │   │   │   └── UserNotFoundExceptionCode.java
│   │               │   │   ├── model
│   │               │   │   │   ├── Cart.java
│   │               │   │   │   └── CartItem.java
│   │               │   │   ├── repository
│   │               │   │   │   ├── CartItemRepository.java
│   │               │   │   │   └── CartRepository.java
│   │               │   │   └── service
│   │               │   │       ├── CartService.java
│   │               │   │       └── CartServiceImpl.java
│   │               │   ├── likes
│   │               │   │   ├── controller
│   │               │   │   │   └── LikeController.java
│   │               │   │   ├── dto
│   │               │   │   │   └── LikeDTO.java
│   │               │   │   ├── error
│   │               │   │   │   └── LikeError.java
│   │               │   │   ├── model
│   │               │   │   │   └── Likes.java
│   │               │   │   ├── repository
│   │               │   │   │   └── LikeRepository.java
│   │               │   │   └── service
│   │               │   │       └── LikeService.java
│   │               │   ├── order
│   │               │   │   ├── controller
│   │               │   │   │   └── OrderController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   ├── OrderItemRequest.java
│   │               │   │   │   │   └── OrderRequest.java
│   │               │   │   │   └── response
│   │               │   │   │       ├── OrderItemResponse.java
│   │               │   │   │       └── OrderResponse.java
│   │               │   │   ├── exception
│   │               │   │   │   ├── OrderException.java
│   │               │   │   │   ├── OrderExceptionCode.java
│   │               │   │   │   ├── OrderItemNotFoundException.java
│   │               │   │   │   └── OrderNotFoundException.java
│   │               │   │   ├── model
│   │               │   │   │   ├── OrderItem.java
│   │               │   │   │   └── Orders.java
│   │               │   │   ├── repository
│   │               │   │   │   ├── OrderItemRepository.java
│   │               │   │   │   └── OrderRepository.java
│   │               │   │   └── service
│   │               │   │       └── OrderService.java
│   │               │   ├── product
│   │               │   │   ├── controller
│   │               │   │   │   └── ProductController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   └── AccommodationRequest.java
│   │               │   │   │   └── response
│   │               │   │   │       ├── AccommodationDetailResponse.java
│   │               │   │   │       ├── AccommodationFacilityResponse.java
│   │               │   │   │       ├── AccommodationImageResponse.java
│   │               │   │   │       ├── ProductFacilityResponse.java
│   │               │   │   │       ├── ProductImageResponse.java
│   │               │   │   │       ├── ProductResponse.java
│   │               │   │   │       └── ProductSummaryListResponse.java
│   │               │   │   ├── exception
│   │               │   │   │   ├── ProductException.java
│   │               │   │   │   └── ProductExceptionCode.java
│   │               │   │   ├── model
│   │               │   │   │   ├── Product.java
│   │               │   │   │   ├── ProductFacility.java
│   │               │   │   │   ├── ProductImage.java
│   │               │   │   │   └── ProductInfoPerNight.java
│   │               │   │   ├── repository
│   │               │   │   │   ├── ProductFacilityRepository.java
│   │               │   │   │   ├── ProductImageRepository.java
│   │               │   │   │   ├── ProductInfoPerNightRepository.java
│   │               │   │   │   └── ProductRepository.java
│   │               │   │   └── service
│   │               │   │       └── ProductService.java
│   │               │   ├── review
│   │               │   │   ├── controller
│   │               │   │   │   └── ReviewController.java
│   │               │   │   ├── dto
│   │               │   │   │   ├── request
│   │               │   │   │   │   ├── ReviewCreateRequest.java
│   │               │   │   │   │   └── ReviewUpdateRequest.java
│   │               │   │   │   └── response
│   │               │   │   │       ├── ProductReviewListResponse.java
│   │               │   │   │       ├── ReviewCreateResponse.java
│   │               │   │   │       ├── ReviewDeleteResponse.java
│   │               │   │   │       ├── ReviewUpdateResponse.java
│   │               │   │   │       └── UserReviewListResponse.java
│   │               │   │   ├── exception
│   │               │   │   │   ├── AccommodationNotFoundException.java
│   │               │   │   │   ├── ReviewAlreadyWrittenException.java
│   │               │   │   │   ├── ReviewExceptionCode.java
│   │               │   │   │   └── ReviewNotFoundException.java
│   │               │   │   ├── model
│   │               │   │   │   └── Review.java
│   │               │   │   ├── repository
│   │               │   │   │   └── ReviewRepository.java
│   │               │   │   └── service
│   │               │   │       └── ReviewService.java
│   │               │   └── user
│   │               │       ├── controller
│   │               │       │   ├── AuthController.java
│   │               │       │   └── UserController.java
│   │               │       ├── dto
│   │               │       │   ├── request
│   │               │       │   │   ├── LoginRequest.java
│   │               │       │   │   └── SignUpRequest.java
│   │               │       │   └── response
│   │               │       │       ├── LoginResponse.java
│   │               │       │       ├── MyPageDetailResponse.java
│   │               │       │       ├── MyPageListResponse.java
│   │               │       │       └── SignUpResponse.java
│   │               │       ├── exception
│   │               │       │   ├── EmailAlreadyExistsException.java
│   │               │       │   ├── InValidUserException.java
│   │               │       │   └── InValidUserExceptionCode.java
│   │               │       ├── model
│   │               │       │   ├── User.java
│   │               │       │   └── UserFacility.java
│   │               │       ├── repository
│   │               │       │   └── UserRepository.java
│   │               │       └── service
│   │               │           ├── AuthService.java
│   │               │           └── UserService.java
│   │               ├── global
│   │               │   ├── common
│   │               │   │   ├── AreaCode.java
│   │               │   │   └── Payment.java
│   │               │   ├── config
│   │               │   │   ├── AuthConfig.java
│   │               │   │   ├── MybatisConfig.java
│   │               │   │   └── OpenApiConfig.java
│   │               │   ├── constants
│   │               │   │   └── ApiConstants.java
│   │               │   ├── date
│   │               │   │   ├── exception
│   │               │   │   │   ├── InValidDateException.java
│   │               │   │   │   └── InValidDateExceptionCode.java
│   │               │   │   └── util
│   │               │   │       └── DateUtil.java
│   │               │   └── exception
│   │               │       ├── ExceptionCode.java
│   │               │       ├── ExceptionResponseDTO.java
│   │               │       ├── TrillionException.java
│   │               │       ├── TrillionExceptionCode.java
│   │               │       └── TrillionExceptionHandler.java
│   │               └── security
│   │                   ├── common
│   │                   │   └── Authority.java
│   │                   ├── config
│   │                   │   ├── JwtSecurityConfig.java
│   │                   │   └── SecurityConfig.java
│   │                   ├── constants
│   │                   │   └── JwtConstants.java
│   │                   ├── dto
│   │                   │   └── TokenDto.java
│   │                   ├── exception
│   │                   │   ├── InvalidTokenException.java
│   │                   │   ├── NotTokenException.java
│   │                   │   ├── SecurityExceptionCode.java
│   │                   │   └── UserNotFoundException.java
│   │                   ├── jwt
│   │                   │   ├── JwtAccessDeniedHandler.java
│   │                   │   ├── JwtAuthenticationEntryPoint.java
│   │                   │   ├── JwtAuthenticationProvider.java
│   │                   │   ├── JwtAuthenticationSuccessHandler.java
│   │                   │   ├── JwtFilter.java
│   │                   │   └── JwtTokenProvider.java
│   │                   ├── model
│   │                   │   └── UserPrincipal.java
│   │                   ├── service
│   │                   │   └── CustomUserDetailsService.java
│   │                   └── util
│   │                       └── SecurityUtil.java
│   └── resources
│       ├── application.yml
│       └── mapper
│           └── AccommodationMapper.xml


About

🌟 숙박 예약 서비스 [트릴리언] 🌟

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •