Skip to content
/ WonT Public
forked from FRONTENDSCHOOL6/WonT

멋쟁이사자처럼 프론트엔드스쿨 6기 10조 "✈️여행 플래너" 프로젝트

Notifications You must be signed in to change notification settings

uniS2/WonT

 
 

Repository files navigation

[멋사 6기🦁 | 멋쟁이 🔟조 | React 프로젝트]

@uniS2: React + JavaScript 프로젝트 개인 레포
멋쟁이 🔟조: TypeScript, Next.js 마이그레이션 진행 중

readme-logo

📋목차

  1. 🎮 프로젝트 사용법
  2. ✈️ 프로젝트 소개
  3. 📖 개인 작업 담당페이지
  4. 📅 프로젝트 일정
  5. 📝 기술스택
  6. 🔪 컨벤션
  7. 📂 폴더구성
  8. 🌈 유저 플로우
  9. 🎥 개인 작업 화면구성

🎮 프로젝트 사용법

기존 회원 로그인시
패키지 설치
pnpm i / pnpm install
클라이언트 실행
pnpm dev

✈️ 프로젝트 소개

  • 프로젝트 이름 : WonT ( We on Trip )
  • 프로젝트 목적 : 여행 일정 관리 구현
  • 프로젝트 기간 : 230831 ~ 230924
  • 배포주소 : WonT

readme-main


📖 개인 작업 담당페이지

📌정소이

  • 전체 페이지

    • Zustand 및 TanStack Query 라이브러리 사용
    • usdNavigate() 또는 <Link /> 를 이용한 경로 이동
  • 지역 선택 페이지 (TripLocalPage)

    • 데이터 Read, Create (GET, POST)
    • localStore() 이용한 상태 관리
  • 날짜 선택 페이지 (TripCalendarPage)

    • 데이터 Update (PUT)
    • useDateStore() 이용한 상태 관리
    • 로그인 유저 정보를 이용한 TanStack Query 활용
    • react-calendar 활용한 달력 커스텀 및 접근성 개선
  • 장소 및 숙소 선택 페이지 (TripPlacePage, MyHotelPage)

    • 로그인 유저 정보 활용한 TanStack Query 활용

    • useToggleTripMenuStore(), useMapStore(), useScheduleStore() 이용한 상태관리

    • kakao Map API 활용한 선택 지역 실시간 정보 렌더링 기능 구현

      • 현재 선택한 지역으로 중심 좌표 검색 및 설정 (지도 기본값)
      • 장소/숙소 카테고리 검색결과 마커로 표시 (최대 15개)
      • 마커로 표시된 장소목록 렌더링 및 선택 버튼 구현
      • 지도 이동시 중심 좌표 업데이트 및 리렌더링
  • 나의 일정 상세 페이지 (MyScheduleDetailPage)

    • 데이터 Read, Delete (GET, DELETE)
    • useButtonStore(), useToggleTripMenuStore() 이용한 상태관리

readme-calender


📝 기술스택

readme-stack


🔪 컨벤션


📂 폴더구성

폴더구성
📦src
 ┣ 📂api
 ┃ ┗ 📜pocketbase.js
 ┣ 📂components
 ┃ ┣ 📂Detail
 ┃ ┃ ┗ 📜DetailInfo.jsx
 ┃ ┣ 📂Header
 ┃ ┃ ┣ 📜BackIcon.jsx
 ┃ ┃ ┣ 📜Header.jsx
 ┃ ┃ ┣ 📜TripHeader.jsx
 ┃ ┃ ┗ 📜UserIcon.jsx
 ┃ ┣ 📂Landing
 ┃ ┃ ┣ ...
 ┃ ┣ 📂Main
 ┃ ┃ ┣ ...
 ┃ ┣ 📂MyPage
 ┃ ┃ ┣ ...
 ┃ ┣ 📂MyScheduleDetail
 ┃ ┃ ┣ 📜DayScheduleItem.jsx
 ┃ ┃ ┣ 📜ToggleTotalSchedule.jsx
 ┃ ┃ ┣ 📜TotalScheduleSummary.jsx
 ┃ ┃ ┣ 📜TotalScheduleView.jsx
 ┃ ┃ ┣ 📜TotalScheduleViewHotelDay.jsx
 ┃ ┃ ┣ 📜TotalScheduleViewImageList.jsx
 ┃ ┃ ┣ 📜TotalScheduleViewTitle.jsx
 ┃ ┃ ┗ 📜TotalScheduleViewTopic.jsx
 ┃ ┣ 📂Sign
 ┃ ┃ ┣ ...
 ┃ ┣ 📂Spinner
 ┃ ┃ ┣ 📜spinner.css
 ┃ ┃ ┗ 📜Spinner.jsx
 ┃ ┣ 📂TripCalendar
 ┃ ┃ ┗ 📜TripCalendar.jsx
 ┃ ┣ 📂TripEdit
 ┃ ┃ ┣ 📜AddPlan.jsx
 ┃ ┃ ┣ 📜ButtonMedium.jsx
 ┃ ┃ ┣ 📜PlacePlan.jsx
 ┃ ┃ ┣ 📜PlanDate.jsx
 ┃ ┃ ┣ 📜ScheduleMap.jsx
 ┃ ┃ ┣ 📜SelectHotelMap.jsx
 ┃ ┃ ┣ 📜TripPlaneIcon.jsx
 ┃ ┃ ┗ 📜TripSchedule.jsx
 ┃ ┣ 📂TripLocal
 ┃ ┃ ┣ 📜ButtonSmall.jsx
 ┃ ┃ ┣ 📜LocalImage.jsx
 ┃ ┃ ┣ 📜LocalItem.jsx
 ┃ ┃ ┗ 📜LocalName.jsx
 ┃ ┣ 📂TripSelect
 ┃ ┃ ┣ 📜AddButton.jsx
 ┃ ┃ ┣ 📜AddPlaceItem.jsx
 ┃ ┃ ┣ 📜AddPlaceItemContent.jsx
 ┃ ┃ ┣ 📜CheckIcon.jsx
 ┃ ┃ ┣ 📜HambugerButton.jsx
 ┃ ┃ ┣ 📜HambugerIcon.jsx
 ┃ ┃ ┣ 📜MapHotel.jsx
 ┃ ┃ ┣ 📜MapPlace.jsx
 ┃ ┃ ┣ 📜PlusIcon.jsx
 ┃ ┃ ┣ 📜TripHotelItem.jsx
 ┃ ┃ ┣ 📜TripPlaceImage.jsx
 ┃ ┃ ┣ 📜TripPlaceInfo.jsx
 ┃ ┃ ┣ 📜TripPlaceItem.jsx
 ┃ ┃ ┗ 📜TripPlanMenu.jsx
 ┃ ┣ 📜BookMark.jsx
 ┃ ┣ 📜ButtonLarge.jsx
 ┃ ┣ 📜CloseIcon.jsx
 ┃ ┣ 📜DefaultImage.jsx
 ┃ ┣ 📜DeleteButton.jsx
 ┃ ┣ 📜Footer.jsx
 ┃ ┣ 📜LocationIcon.jsx
 ┃ ┣ 📜Logo.jsx
 ┃ ┣ 📜Map.jsx
 ┃ ┣ 📜Modal.jsx
 ┃ ┣ 📜PageHeader.jsx
 ┃ ┣ 📜ProtectRoute..jsx
 ┃ ┣ 📜ToggleDownIcon.jsx
 ┃ ┣ 📜ToggleUpIcon.jsx
 ┃ ┣ 📜TripPlan.jsx
 ┃ ┣ 📜TripPlanEditButton.jsx
 ┃ ┗ 📜TripTitle.jsx
 ┣ 📂contexts
 ┃ ┗ 📜Auth.jsx
 ┣ 📂hooks
 ┃ ┣ 📜useFetchData.js
 ┃ ┣ 📜useFetchMySchedule.js
 ┃ ┣ 📜useRecommendsList.js
 ┃ ┣ 📜useScheduleList.js
 ┃ ┣ 📜useStorage.js
 ┃ ┗ 📜useTravlesList.js
 ┣ 📂pages
 ┃ ┣ 📂MyPage
 ┃ ┃ ┣ ...
 ┃ ┣ 📜DetailPage.jsx
 ┃ ┣ 📜LandingPage.jsx
 ┃ ┣ 📜MainPage.jsx
 ┃ ┣ 📜MyScheduleDetailPage.jsx
 ┃ ┣ 📜RootLayout.jsx
 ┃ ┣ 📜SignInPage.jsx
 ┃ ┣ 📜SignUpPage.jsx
 ┃ ┣ 📜TravelsPage.jsx
 ┃ ┣ 📜TripCalendarPage.jsx
 ┃ ┣ 📜TripEditPage.jsx
 ┃ ┣ 📜TripHotelPage.jsx
 ┃ ┣ 📜TripLocalPage.jsx
 ┃ ┗ 📜TripPlacePage.jsx
 ┣ 📂store
 ┃ ┣ 📜bookmarkStore.js
 ┃ ┣ 📜buttonStore.js
 ┃ ┣ 📜createStore.js
 ┃ ┣ 📜dateStore.js
 ┃ ┣ 📜localStore.js
 ┃ ┣ 📜mapStore.js
 ┃ ┣ 📜markerStore.js
 ┃ ┣ 📜memoStore.js
 ┃ ┣ 📜scheduleStore.js
 ┃ ┣ 📜selectRangeStore.js
 ┃ ┗ 📜toggleTripMenuStore.js
 ┣ 📂styles
 ┃ ┣ 📜calendar.css
 ┃ ┗ 📜tailwind.css
 ┣ 📂utils
 ┃ ┣ 📜createRecord.js
 ┃ ┣ 📜debounce.js
 ┃ ┣ 📜encoding.js
 ┃ ┣ 📜getDDay.js
 ┃ ┣ 📜getLocalName.js
 ┃ ┣ 📜getNode.js
 ┃ ┣ 📜getPocketHostImageURL.js
 ┃ ┣ 📜getPocketHostURL.js
 ┃ ┣ 📜getRangeDay.js
 ┃ ┣ 📜getTripDate.js
 ┃ ┣ 📜index.js
 ┃ ┣ 📜propTypes.js
 ┃ ┗ 📜updateRecord.js
 ┣ 📜App.jsx
 ┣ 📜main.jsx
 ┗ 📜routes.jsx

🌈 유저플로우

readme-Wont Diagram


🎥 개인 작업 화면구성

  • 유저플로우 순서로 구성하였습니다.
TripLocalPage TripCalendarPage
readme-mainpage 1 TripLocal_-_WonT
TripPlacePage MyHotelPage MyScheduleDetailPage
3 TripPlace_-_WonT 4 TripHotel_-_WonT 5 MySchedule_Detail_-_WonT

⬆ back to top

Packages

No packages published

Languages

  • JavaScript 96.9%
  • CSS 2.5%
  • HTML 0.6%