Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Team - 03][BE] 에어비앤비 프로젝트 1주차 1회차 PR #41

Merged
merged 3 commits into from
May 25, 2022

Conversation

fpzk5656
Copy link

@fpzk5656 fpzk5656 commented May 25, 2022

요구사항 분석 링크

https://github.com/mogooee/airbnb/wiki/%5BBE%5D-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%B0%8F-%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD-%EB%B6%84%EC%84%9D

ERD 설계

image

안녕하세요? 왕민!
선을로 입니다!
며칠째 설계도를 짜고 있는데 부족한 점이 많아 부끄럽지만 PR 보내봅니다..!

이상입니다!

@fpzk5656 fpzk5656 requested a review from Min-92 May 25, 2022 08:28
@fpzk5656 fpzk5656 self-assigned this May 25, 2022
@fpzk5656 fpzk5656 added the review-BE Improvements or additions to documentation label May 25, 2022
@Min-92
Copy link

Min-92 commented May 25, 2022

안녕하세요 선을로.
이번 프로젝트 리뷰어 왕민입니다 반갑습니다 :)

1인 팀인데 FE와 iOS모두 대응해야하네요..ㅠㅠ (팀배정에 문제가 있는것같은데.... ㅋㅋ)
험난한 앞길 응원하겠습니다 👍

요구사항 분석하신 부분이랑 ERD 코멘트 드리고 PR 머지하도록 하겠습니다.
(저도 가이드가 따로 없고 개인적으로 분석해야해서 정확하지 않을 수 있습니다 ㅠ)

요구사항

페이지별로 기능 분석하신 부분 좋네요. 👍
여기서 BE를 위한 기능으로 디벨롭하면 좀 더 좋아질 것 같습니다.
-> 클라이언트 기능 제외, 필요한 API로 정리

ex) 요금바: 선택하면, 체크인/체크아웃 바에 입력된 날짜를 json 형태로 요청하고 -> 서버에서는 해당 날짜간격 사이의 숙소개수를 금액별로 나열해서 반환한다.
-> 요금 목록 조회, request : 체크인,체크아웃, response : 요금 목록, 평균값

이런식으로 기능 정리하면 API 설계하기 좀 더 수월하실 것 같네요 :)

테이블 설계

  • room, member, reservation의 관계가 잘못 맺어진듯 하네요
    • Reservation이 member와 room의 외래키를 가지고 있어야 할 것 같아요.
    • Member -< Reservation >- Room의 관계가 맞을 듯 합니다 :)
  • Room의 images는 Image가 Room의 외래키를 가지고 있으니 불필요한 데이터로 보이네요.(RDB에서는 list를 값으로 가질 수 없어요)
  • Room의 평점과 후기 건수도 테이블을 분리하는건 어떨까요?
    • Review >- Room 의 관계로 Review 테이블을 설계하면, 리뷰 목록 개수로 후기 건수, 리뷰 목록의 점수 계산으로 평점을 구할 수 있을것 같네요
  • Price 테이블을 생성 해보는건 어떨까요?
    • RoomId를 외래키로 가진 Price테이블로 room별로 가격을 관리 할 수 있을것 같네요.
    • price 테이블은 꼭 분리는 안하셔도 됩니다. 데이터를 어느 범위까지 나눌지는 설계하는사람에게 달려있습니다 :)

@Min-92 Min-92 merged commit 1bc3fa5 into codesquad-members-2022:team-03 May 25, 2022
@fpzk5656
Copy link
Author

fpzk5656 commented May 25, 2022

요구사항

페이지별로 기능 분석하신 부분 좋네요. 👍 여기서 BE를 위한 기능으로 디벨롭하면 좀 더 좋아질 것 같습니다. -> 클라이언트 기능 제외, 필요한 API로 정리

ex) 요금바: 선택하면, 체크인/체크아웃 바에 입력된 날짜를 json 형태로 요청하고 -> 서버에서는 해당 날짜간격 사이의 숙소개수를 금액별로 나열해서 반환한다. -> 요금 목록 조회, request : 체크인,체크아웃, response : 요금 목록, 평균값

이런식으로 기능 정리하면 API 설계하기 좀 더 수월하실 것 같네요 :)

선을로: 넵! 참고하겠습니다. 감사합니다!ㅎㅎ

테이블 설계

  • room, member, reservation의 관계가 잘못 맺어진듯 하네요

    • Reservation이 member와 room의 외래키를 가지고 있어야 할 것 같아요.
    • Member -< Reservation >- Room의 관계가 맞을 듯 합니다 :)

선을로: 아아..Reservation은 member로부터 room_id만 받아놓고 나중에 그 키값으로 api로 상세페이지 조회하려했었는데,
왕민이 말씀해주신 방법이 훨씬 낫겠네요ㅎㅎ 감사합니다!

  • Room의 images는 Image가 Room의 외래키를 가지고 있으니 불필요한 데이터로 보이네요.(RDB에서는 list를 값으로 가질 수 없어요)

선을로: '객체 연관 관계'랑 '테이블 연관 관계'를 구분하지 못해서 저지른 실수네요...감사합니다!

  • Room의 평점과 후기 건수도 테이블을 분리하는건 어떨까요?

    • Review >- Room 의 관계로 Review 테이블을 설계하면, 리뷰 목록 개수로 후기 건수, 리뷰 목록의 점수 계산으로 평점을 구할 수 있을것 같네요

선을로: 요구사항에 '후기 내용'이 부재되서 설계하지 않을 생각이었는데, 말씀해주신 방법처럼 해보겠습니다. 감사합니다!

  • Price 테이블을 생성 해보는건 어떨까요?

    • RoomId를 외래키로 가진 Price테이블로 room별로 가격을 관리 할 수 있을것 같네요.
    • price 테이블은 꼭 분리는 안하셔도 됩니다. 데이터를 어느 범위까지 나눌지는 설계하는사람에게 달려있습니다 :)

선을로: 한 숙소에 Room이 한종류일 때를 고려해서 Price는 하나만 지니고 있는 것을 생각했습니다.
리소스를 저희가 직접 만들어야 하는 것으로 알고 있어서... 한 숙소당 한 종류씩만 해도 많을거 같은데,
여러 종류의 룸을 둘 만들 자신이 없어서, 한숙소 == 룸하나 이렇게 생각하고 설계했는데요..
이 부분은 후에 가정이 바뀌면 적용해보도록 하겠습니다! 감사합니다!

image

선을로: 말씀해주신 내용을 바탕으로, ERD를 다시 만들어 봤습니다.
현재 모르는 것이 너무 많아 뭘 질문해야될 지 모를 정도인데,
방향을 잡을 수 있는 조언과 지적을 해주셔서 감사합니다!💖👍👍

mogooee referenced this pull request in mogooee/airbnb May 26, 2022
* chore: iOS 프로젝트 셋업 (#6)

* chore: iOS 프로젝트 세팅

* chore: 라이브러리 설치

* feat: main, search, notFound page 라우터 적용

* fix: SPM 에서 swiftlint 삭제 (#11)

* feat: GNB component 생성

svg component, styled-component 사용

* feat: ScrollableView & 앱 디자인 컬러 추가 (#12)

* feat: TabBarController 설정 및 탭별 ViewController 생성(#10)

* feat: ScrollableView 구현 (#11)

* feat: 앱 디자인 컬러 추가

* design:  GlobaslStyles로 styled-reset 적용

* update: hero-img.png

* rename: icons->img 디렉토리명 변경

* design: background image 추가

* update: UserStory.md

* update: story12 수정

* [Team - 03][BE] 에어비앤비 프로젝트 1주차 1회차 PR (#41)

* Update issue templates

* update: directory, README.md

* feat: spring-boot 설치

Co-authored-by: mogooee <92701121+mogooee@users.noreply.github.com>
Co-authored-by: 연 <mogoo22@naver.com>

* Update UserStory.md

* [Team-03] 1주차 첫번째 PR (codesquad-members-2022#59)

* chore: gh-pages install

* refactor: export default 코드 하단에서 function 옆으로 이동

* refactor: 시맨틱 태그(a, nav)로 수정

* chore: MUI install

* design: 메뉴 호버효과 구현, svg -> span 태그로 수정

* feat: menu li 태그에 hover 효과

* design: globalStyles에 box-sizing 속성 추가

* feat: SearchBar Component 구현

* chore: yarn.lock MUI update

* update: icon svg file

* design: button hover시에 transparent 적용

* refactor: styled component 분리

* feat: SearchList, SearchSection 공통 컴포넌트 구현

* feat: SearchBar 상태를 관리하는 SearchProvider 구현

UseReducer, ContextAPI

Co-authored-by: Song Taehwan <42037023+SongTaehwan@users.noreply.github.com>
Co-authored-by: WooSeok Suh <74946802+torch-ray@users.noreply.github.com>
Co-authored-by: Sunullo <59153422+fpzk5656@users.noreply.github.com>
@Min-92
Copy link

Min-92 commented May 29, 2022

@fpzk5656

선을로: '객체 연관 관계'랑 '테이블 연관 관계'를 구분하지 못해서 저지른 실수네요...감사합니다!

JPA에서 말하는 '연관관계의 주인'이 외래키를 가진다고 생각하시면 됩니다 :) 해당 키워드로 학습해보세요

선을로: 한 숙소에 Room이 한종류일 때를 고려해서 Price는 하나만 지니고 있는 것을 생각했습니다.
리소스를 저희가 직접 만들어야 하는 것으로 알고 있어서... 한 숙소당 한 종류씩만 해도 많을거 같은데,
여러 종류의 룸을 둘 만들 자신이 없어서, 한숙소 == 룸하나 이렇게 생각하고 설계했는데요..
이 부분은 후에 가정이 바뀌면 적용해보도록 하겠습니다! 감사합니다!

테이블을 분리하지 않더라도 jpa embedded 타입을 사용해봐도 좋을것 같네요 :)

SangHwi-Back added a commit that referenced this pull request May 31, 2022
[#6] feat: 숙소 찾기 VC 에 CollectionView, HeaderView, Cell 요소 작업
choisohyun pushed a commit that referenced this pull request May 31, 2022
* Feature/3 (#26)

* rename: gnb 폴더 생성하여 관련 컴포넌트 이동
   - styled -> customStyled 로 변경 적용
* refactor: gnb 컴포넌트 css 수정
* feat: main banner UI 구현
* refactor: gnb 컴포넌트 hover 및 cursor pointer 적용

* Feature/2 (#27)

* chore: mui 버전 통일

* feat: 글로벌 스타일 추가

* feat: SearchBar 컴포넌트 style 작성 및 이벤트 추가

* Feature/alias (#28)

* chore: alias 경로 설정을 위한 react-app-rewired 설치 및 설정파일 생성
* refactor: 절대경로 반영 (index, app, gnb, main-banner)
* fix: search input width 고정

* Feature/4 (#29)

* feat: calender page component 구현
* feat: 달력 월~일요일 부분 컴포넌트 구현
* feat: 해당 연-월에 맞는 날짜 영역 컴포넌트 구현
* feat: 이전, 다음 버튼 컴포넌트 및 클릭 기능 구현
* feat: calender 컴포넌트 구현
   - 보여줄 달력 개수를 정하는 page 옵션
   - curData 기반으로 page 만큼의 달력 렌더링
* chore: 브라우저 확인용 App 에 calender 반영
* feat: calender 관련 상태 context 사용하여 분리 및 provider 컴포넌트 생성
   - 불필요한 주석 제거
* refactor: 컴포넌트 이름 변경, DatesOfMonth 에서 DateBox 컴포넌트 분리
* feat: DateBox 컴포넌트 구현
   - 클릭 시 checkIn, checkOut 상태 변경
   - checkIn, checkOut 날짜에 따라 동적 css 적용
* chore: 오타 수정, app.js 에 provider 적용

* feat: header 컴포넌트 생성
- gnb, search-bar, calender를 header 하위 컴포넌트로 수정

* Feature/30 (#32)

* refactor: 캘린더 체크인/체크아웃 모드와 date box 체크 위치 상태를 나타내는 문자열을 상수화
* refactor: 컴포넌트 별 데이터 가공 유틸 함수를 컴포넌트 밖으로 분리
* refactor: Date box 내부에 있던 날짜 비교용 checkInTime, checkOutTime 을 콘텍스트 provider 로 이동
   - checkInDate, checkOutDate 변수명 변경 -> checkInInfo, checkOutInfo
   - checkIn, checkOut, current 변수명 변경 -> checkInTime, checkOutTime, currentTime

* refactor: 캘린더 month 빈배열 생성 시 0 -> Null 로 변경

* Feature/31 (#33)

* refactor: 코드 리뷰 반영
- visibility 속성 display로 변경
- bool 타입 결과값 함수 중복 검사 제거
- SearchMenu 컴포넌트 div 태그로 변경

* feat & refactor: SearchBar 컴포넌트 컨텍스트 추가
- props로 내려주던 상태 context로 관리 하도록 함

* feat : 검색바 반응형 컴포넌트로 수정

* refactor: isFocus를 상태 관리에서 제외
- currentInput의 상태를 통해 얻을 수 있도록 함

* feat&refactor: Header 컴포넌트 반응형으로 수정
- GNB, MainBanner, SearchBar 모두 적용

* feat: 체크인, 체크아웃 인풋 영역 클릭 시 캘린더 모달 팝업 기능 추가

* feat: Header 컴포넌트 fixed 속성 추가

* feat: 모달창 클릭시 검색바 blur가 적용되지 않게 함

* Feature/34 (#36)

* feat: 체크인-체크아웃 사이 날짜 1일과 마지막일 전후 음영 반영
   - DatesOfMonth 컴포넌트 last date 월이 안맞는 오류 수정
     : getDate() 는 현재달 인덱스에 date 0을 주면 이전달 마지막날 반환
* feat: 현재 날짜 이전 날짜 선택 불가 및 회색 표시

* feat: 검색바 체크인, 체크아웃 날짜 출력 기능 추가 (#38)

* feat: 검색바 체크인, 체크아웃 날짜 출력 기능 추가
- 캘린더에서 선택한 날짜를 출력하도록 함

* Feature/20 (#40)

* refactor: ResetButton 동적으로 추가하도록 수정
- input요소의 value 유무에 따라 추가, 삭제

* feat: ResetButton 클릭 이벤트 추가
- 버튼 클릭시 input value 초기화
- 검색바가 포커스되어 있을 때만 버튼이 노출되도록 수정

* feat: 검색바 캘린더 체크인 체크아웃 상태 연동 (#41)

* fix: 포커스 이벤트 에러 수정
- ResetButton 포커스 시에만 노출되도록 수정
- 검색바 포커스 시 세로로 늘어나는 오류 수정

* fix: 캘린더 날짜 선택 오류 수정
- 체크아웃을 먼저 선택 후 체크인 선택 시 체크아웃보다 뒷날이어도 선택되는 오류 수정
- DateBox 컴포넌트 내 handle click 로직 수정

* feat: 캘린더 모달 선택 시 보여지는 달 업데이트
- 체크인 날짜 있는 경우 체크인 달로 시작
- 없는 경우 현재 달로 시작

* fix: 캘린더 토요일과 날짜 정렬

Co-authored-by: bangdler <90082464+bangdler@users.noreply.github.com>
Co-authored-by: bangdler <zbthz90@gmail.com>
choisohyun pushed a commit that referenced this pull request Jun 3, 2022
* Feature/3 (#26)

* rename: gnb 폴더 생성하여 관련 컴포넌트 이동
   - styled -> customStyled 로 변경 적용
* refactor: gnb 컴포넌트 css 수정
* feat: main banner UI 구현
* refactor: gnb 컴포넌트 hover 및 cursor pointer 적용

* Feature/2 (#27)

* chore: mui 버전 통일

* feat: 글로벌 스타일 추가

* feat: SearchBar 컴포넌트 style 작성 및 이벤트 추가

* Feature/alias (#28)

* chore: alias 경로 설정을 위한 react-app-rewired 설치 및 설정파일 생성
* refactor: 절대경로 반영 (index, app, gnb, main-banner)
* fix: search input width 고정

* Feature/4 (#29)

* feat: calender page component 구현
* feat: 달력 월~일요일 부분 컴포넌트 구현
* feat: 해당 연-월에 맞는 날짜 영역 컴포넌트 구현
* feat: 이전, 다음 버튼 컴포넌트 및 클릭 기능 구현
* feat: calender 컴포넌트 구현
   - 보여줄 달력 개수를 정하는 page 옵션
   - curData 기반으로 page 만큼의 달력 렌더링
* chore: 브라우저 확인용 App 에 calender 반영
* feat: calender 관련 상태 context 사용하여 분리 및 provider 컴포넌트 생성
   - 불필요한 주석 제거
* refactor: 컴포넌트 이름 변경, DatesOfMonth 에서 DateBox 컴포넌트 분리
* feat: DateBox 컴포넌트 구현
   - 클릭 시 checkIn, checkOut 상태 변경
   - checkIn, checkOut 날짜에 따라 동적 css 적용
* chore: 오타 수정, app.js 에 provider 적용

* feat: header 컴포넌트 생성
- gnb, search-bar, calender를 header 하위 컴포넌트로 수정

* Feature/30 (#32)

* refactor: 캘린더 체크인/체크아웃 모드와 date box 체크 위치 상태를 나타내는 문자열을 상수화
* refactor: 컴포넌트 별 데이터 가공 유틸 함수를 컴포넌트 밖으로 분리
* refactor: Date box 내부에 있던 날짜 비교용 checkInTime, checkOutTime 을 콘텍스트 provider 로 이동
   - checkInDate, checkOutDate 변수명 변경 -> checkInInfo, checkOutInfo
   - checkIn, checkOut, current 변수명 변경 -> checkInTime, checkOutTime, currentTime

* refactor: 캘린더 month 빈배열 생성 시 0 -> Null 로 변경

* Feature/31 (#33)

* refactor: 코드 리뷰 반영
- visibility 속성 display로 변경
- bool 타입 결과값 함수 중복 검사 제거
- SearchMenu 컴포넌트 div 태그로 변경

* feat & refactor: SearchBar 컴포넌트 컨텍스트 추가
- props로 내려주던 상태 context로 관리 하도록 함

* feat : 검색바 반응형 컴포넌트로 수정

* refactor: isFocus를 상태 관리에서 제외
- currentInput의 상태를 통해 얻을 수 있도록 함

* feat&refactor: Header 컴포넌트 반응형으로 수정
- GNB, MainBanner, SearchBar 모두 적용

* feat: 체크인, 체크아웃 인풋 영역 클릭 시 캘린더 모달 팝업 기능 추가

* feat: Header 컴포넌트 fixed 속성 추가

* feat: 모달창 클릭시 검색바 blur가 적용되지 않게 함

* Feature/34 (#36)

* feat: 체크인-체크아웃 사이 날짜 1일과 마지막일 전후 음영 반영
   - DatesOfMonth 컴포넌트 last date 월이 안맞는 오류 수정
     : getDate() 는 현재달 인덱스에 date 0을 주면 이전달 마지막날 반환
* feat: 현재 날짜 이전 날짜 선택 불가 및 회색 표시

* feat: 검색바 체크인, 체크아웃 날짜 출력 기능 추가 (#38)

* feat: 검색바 체크인, 체크아웃 날짜 출력 기능 추가
- 캘린더에서 선택한 날짜를 출력하도록 함

* Feature/20 (#40)

* refactor: ResetButton 동적으로 추가하도록 수정
- input요소의 value 유무에 따라 추가, 삭제

* feat: ResetButton 클릭 이벤트 추가
- 버튼 클릭시 input value 초기화
- 검색바가 포커스되어 있을 때만 버튼이 노출되도록 수정

* feat: 검색바 캘린더 체크인 체크아웃 상태 연동 (#41)

* fix: 포커스 이벤트 에러 수정
- ResetButton 포커스 시에만 노출되도록 수정
- 검색바 포커스 시 세로로 늘어나는 오류 수정

* fix: 캘린더 날짜 선택 오류 수정
- 체크아웃을 먼저 선택 후 체크인 선택 시 체크아웃보다 뒷날이어도 선택되는 오류 수정
- DateBox 컴포넌트 내 handle click 로직 수정

* feat: 캘린더 모달 선택 시 보여지는 달 업데이트
- 체크인 날짜 있는 경우 체크인 달로 시작
- 없는 경우 현재 달로 시작

* fix: 캘린더 토요일과 날짜 정렬

* Feature/15 (#42)

* refactor: 모달 배경 관련 스타일 별도 컴포넌트로 분리

* rename: custom-styled-component 폴더 utils 하위로 이동
- Header.js => Header.jsx 로 변경

* rename : calender 폴더 modal 하위 폴더로 이동
- 절대 경로 설정 및 적용

* refactor: ModalContainer 스타일 theme 사용 하도록 수정

* feat: Personnel 모달 컴포넌트 추가

* Feature/7 (#43)

* rename: context 폴더 분리
- provider 모두 context 폴더 하위로 이동

* feat: 인원 설정 모달 컨트롤러 버튼 컴포넌트 분리

* feat: 검색바 인원 상태 관리를 위한 관련 상수 추가

* feat: 검색바 인원 설정 모달 인원 추가, 인원 삭제 기능 추가

* feat: 검색바에 선택된 인원 출력 기능 추가 (#44)

* feat: 검색바에 선택된 인원 출력 기능 추가

* Feature/11 (#45)

* feat: 성인 없이 어린이, 유아 인원 추가 방지 기능 추가

* fix: 성인 인원을 줄일 수 없는 상황에 버튼 비활성화 색상 스타일 적용

* refactor: ResetButton 컴포넌트 onClick 핸들러 props로 받도록 수정

* feat: 인원 설정 초기화 기능 추가

* refactor&style: 중복코드 삭제, 줄띄움

* fix: 검색바 초기화 버튼 유무따라 크기가 변경되는 부분 수정
- 검색 버튼 아이콘 컬러 변경

* fix: 검색바 사이즈 줄면 초기화 버튼이 검색 버튼에 가리는 오류 수정

* Feature/46 (#47)

* refactor: 중복 코드 함수화, StyledExpandBackground 분기문
   - info 를 받아 time 으로 바꿔주는 함수
   - 체크인-체크아웃 사이에 있고, 1일이거나 마지막날일 경우에만 StyledExpandBackround 컴포넌트 생성

* feat: calender provider 에 prev date, next date 추가
   - 불필요한 useEffect 코드 제거

* feat: calender 컴포넌트에서 page 생성 부분을 calender carousel 컴포넌트로 이동
   - calender position 상태 생성

* chore: calender page width 수정(336 -> 350px)

* feat: 이전, 다음달 이동 버튼 로직 수정
   - curDate 를 직접 바꾸는 방식에서 calender position 만 바꿔주는 방식
   - calender position 에 따라 carousel에서 translateX 후 curDate 변경

* feat: Calender Carousel 컴포넌트 구현
   - prevDate, curDate, nextDate 기준으로 각각 Calender page wrapper 로 묶음
   - calender display 영역 내에서 moveArea 를 이동

* fix: 검색바 모달 관련 인풋창 아래에 나타나도록 위치 수정

Co-authored-by: bangdler <90082464+bangdler@users.noreply.github.com>
Co-authored-by: bangdler <zbthz90@gmail.com>
hanchang97 pushed a commit that referenced this pull request Jun 8, 2022
[Android] searchResult 화면 어뎁터 생성
wooody92 pushed a commit that referenced this pull request Jun 9, 2022
…ncel

Be/feature/#41 reservation cancel - 예약 취소 기능 구현
choisohyun pushed a commit that referenced this pull request Jun 12, 2022
* Feature/3 (#26)

* rename: gnb 폴더 생성하여 관련 컴포넌트 이동
   - styled -> customStyled 로 변경 적용
* refactor: gnb 컴포넌트 css 수정
* feat: main banner UI 구현
* refactor: gnb 컴포넌트 hover 및 cursor pointer 적용

* Feature/2 (#27)

* chore: mui 버전 통일

* feat: 글로벌 스타일 추가

* feat: SearchBar 컴포넌트 style 작성 및 이벤트 추가

* Feature/alias (#28)

* chore: alias 경로 설정을 위한 react-app-rewired 설치 및 설정파일 생성
* refactor: 절대경로 반영 (index, app, gnb, main-banner)
* fix: search input width 고정

* Feature/4 (#29)

* feat: calender page component 구현
* feat: 달력 월~일요일 부분 컴포넌트 구현
* feat: 해당 연-월에 맞는 날짜 영역 컴포넌트 구현
* feat: 이전, 다음 버튼 컴포넌트 및 클릭 기능 구현
* feat: calender 컴포넌트 구현
   - 보여줄 달력 개수를 정하는 page 옵션
   - curData 기반으로 page 만큼의 달력 렌더링
* chore: 브라우저 확인용 App 에 calender 반영
* feat: calender 관련 상태 context 사용하여 분리 및 provider 컴포넌트 생성
   - 불필요한 주석 제거
* refactor: 컴포넌트 이름 변경, DatesOfMonth 에서 DateBox 컴포넌트 분리
* feat: DateBox 컴포넌트 구현
   - 클릭 시 checkIn, checkOut 상태 변경
   - checkIn, checkOut 날짜에 따라 동적 css 적용
* chore: 오타 수정, app.js 에 provider 적용

* feat: header 컴포넌트 생성
- gnb, search-bar, calender를 header 하위 컴포넌트로 수정

* Feature/30 (#32)

* refactor: 캘린더 체크인/체크아웃 모드와 date box 체크 위치 상태를 나타내는 문자열을 상수화
* refactor: 컴포넌트 별 데이터 가공 유틸 함수를 컴포넌트 밖으로 분리
* refactor: Date box 내부에 있던 날짜 비교용 checkInTime, checkOutTime 을 콘텍스트 provider 로 이동
   - checkInDate, checkOutDate 변수명 변경 -> checkInInfo, checkOutInfo
   - checkIn, checkOut, current 변수명 변경 -> checkInTime, checkOutTime, currentTime

* refactor: 캘린더 month 빈배열 생성 시 0 -> Null 로 변경

* Feature/31 (#33)

* refactor: 코드 리뷰 반영
- visibility 속성 display로 변경
- bool 타입 결과값 함수 중복 검사 제거
- SearchMenu 컴포넌트 div 태그로 변경

* feat & refactor: SearchBar 컴포넌트 컨텍스트 추가
- props로 내려주던 상태 context로 관리 하도록 함

* feat : 검색바 반응형 컴포넌트로 수정

* refactor: isFocus를 상태 관리에서 제외
- currentInput의 상태를 통해 얻을 수 있도록 함

* feat&refactor: Header 컴포넌트 반응형으로 수정
- GNB, MainBanner, SearchBar 모두 적용

* feat: 체크인, 체크아웃 인풋 영역 클릭 시 캘린더 모달 팝업 기능 추가

* feat: Header 컴포넌트 fixed 속성 추가

* feat: 모달창 클릭시 검색바 blur가 적용되지 않게 함

* Feature/34 (#36)

* feat: 체크인-체크아웃 사이 날짜 1일과 마지막일 전후 음영 반영
   - DatesOfMonth 컴포넌트 last date 월이 안맞는 오류 수정
     : getDate() 는 현재달 인덱스에 date 0을 주면 이전달 마지막날 반환
* feat: 현재 날짜 이전 날짜 선택 불가 및 회색 표시

* feat: 검색바 체크인, 체크아웃 날짜 출력 기능 추가 (#38)

* feat: 검색바 체크인, 체크아웃 날짜 출력 기능 추가
- 캘린더에서 선택한 날짜를 출력하도록 함

* Feature/20 (#40)

* refactor: ResetButton 동적으로 추가하도록 수정
- input요소의 value 유무에 따라 추가, 삭제

* feat: ResetButton 클릭 이벤트 추가
- 버튼 클릭시 input value 초기화
- 검색바가 포커스되어 있을 때만 버튼이 노출되도록 수정

* feat: 검색바 캘린더 체크인 체크아웃 상태 연동 (#41)

* fix: 포커스 이벤트 에러 수정
- ResetButton 포커스 시에만 노출되도록 수정
- 검색바 포커스 시 세로로 늘어나는 오류 수정

* fix: 캘린더 날짜 선택 오류 수정
- 체크아웃을 먼저 선택 후 체크인 선택 시 체크아웃보다 뒷날이어도 선택되는 오류 수정
- DateBox 컴포넌트 내 handle click 로직 수정

* feat: 캘린더 모달 선택 시 보여지는 달 업데이트
- 체크인 날짜 있는 경우 체크인 달로 시작
- 없는 경우 현재 달로 시작

* fix: 캘린더 토요일과 날짜 정렬

* Feature/15 (#42)

* refactor: 모달 배경 관련 스타일 별도 컴포넌트로 분리

* rename: custom-styled-component 폴더 utils 하위로 이동
- Header.js => Header.jsx 로 변경

* rename : calender 폴더 modal 하위 폴더로 이동
- 절대 경로 설정 및 적용

* refactor: ModalContainer 스타일 theme 사용 하도록 수정

* feat: Personnel 모달 컴포넌트 추가

* Feature/7 (#43)

* rename: context 폴더 분리
- provider 모두 context 폴더 하위로 이동

* feat: 인원 설정 모달 컨트롤러 버튼 컴포넌트 분리

* feat: 검색바 인원 상태 관리를 위한 관련 상수 추가

* feat: 검색바 인원 설정 모달 인원 추가, 인원 삭제 기능 추가

* feat: 검색바에 선택된 인원 출력 기능 추가 (#44)

* feat: 검색바에 선택된 인원 출력 기능 추가

* Feature/11 (#45)

* feat: 성인 없이 어린이, 유아 인원 추가 방지 기능 추가

* fix: 성인 인원을 줄일 수 없는 상황에 버튼 비활성화 색상 스타일 적용

* refactor: ResetButton 컴포넌트 onClick 핸들러 props로 받도록 수정

* feat: 인원 설정 초기화 기능 추가

* refactor&style: 중복코드 삭제, 줄띄움

* fix: 검색바 초기화 버튼 유무따라 크기가 변경되는 부분 수정
- 검색 버튼 아이콘 컬러 변경

* fix: 검색바 사이즈 줄면 초기화 버튼이 검색 버튼에 가리는 오류 수정

* Feature/46 (#47)

* refactor: 중복 코드 함수화, StyledExpandBackground 분기문
   - info 를 받아 time 으로 바꿔주는 함수
   - 체크인-체크아웃 사이에 있고, 1일이거나 마지막날일 경우에만 StyledExpandBackround 컴포넌트 생성

* feat: calender provider 에 prev date, next date 추가
   - 불필요한 useEffect 코드 제거

* feat: calender 컴포넌트에서 page 생성 부분을 calender carousel 컴포넌트로 이동
   - calender position 상태 생성

* chore: calender page width 수정(336 -> 350px)

* feat: 이전, 다음달 이동 버튼 로직 수정
   - curDate 를 직접 바꾸는 방식에서 calender position 만 바꿔주는 방식
   - calender position 에 따라 carousel에서 translateX 후 curDate 변경

* feat: Calender Carousel 컴포넌트 구현
   - prevDate, curDate, nextDate 기준으로 각각 Calender page wrapper 로 묶음
   - calender display 영역 내에서 moveArea 를 이동

* fix: 검색바 모달 관련 인풋창 아래에 나타나도록 위치 수정

* Feature/15 1 (#49)

* feat: Price 컴포넌트 생성
- Title 컴포넌트 재사용을 위해 분리

* refactor: 검색바 블러 이벤트 대신 dim레이어 클릭 시 모달이 사라지도록 수정
- e.preventDefault 때문에 range input의 thumb가 움직이지 않아 수정

* feat: 요금 설정 모달 요금별 데이터 그래프 추가
- 임시 데이터 추가

* feat: 요금 범위 설정 슬라이더 추가

* chore: chart.js 설정 추가

* fix: MainBanner 이미지 연결 오류 수정

* feat: 요금 모달 세부 텍스트 출력

* feat: 검색바에 요금 상태 출력
- 초기화 버튼 이벤트 핸들러 추가

* fix: merge 후 모달창이 관련 인풋창 아래에 위치하지 않는 오류 수정

* refactor: 인원 모달 컨트롤 버튼 하나의 컴포넌트로 합침
- type으로 add, remove 구분하도록 props 추가

* refactor: calender Prev Button, Next Button 을 통합한 Calender Button 구현 (#50)

Co-authored-by: moon-yerim <75062526+moonyerim2@users.noreply.github.com>

* refactor: 모달창 클릭 시 닫히지 않도록 하는 기능 수정
- dim레이어 삭제
- Node.contains를 사용한 방법으로 수정

Co-authored-by: bangdler <90082464+bangdler@users.noreply.github.com>
Co-authored-by: bangdler <zbthz90@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
review-BE Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants