Skip to content
 
 

Repository files navigation

TripKoFE

한국이 처음이라도, 한국어를 몰라도 제약없이 즐기는 한국 로컬여행

서비스 소개

1️⃣ 다양한 관광 정보 제공

  • 현지인들에게 인기 있는 장소를 구석구석 수록
  • 한국어와 문화를 몰라도 만족스러운 여행 경험 선사할 수 있는 정확하고 자세한 정보를 영어로 제공

2️⃣ 한국 음식 검색 기능

  • 오번역을 포함한 검색이 가능
  • 음식의 재료 및 제조 과정 등 정확하고 자세한 정보 제공
  • 검색한 음식을 이용할 수 있는 관련 식당정보 제공

3️⃣ 예약하기

  • 예약 대행 서비스
  • 의사소통의 어려움 없이 간편하게 식당, 축제 예약

4️⃣ 사용자 편의 기능

  • 찜하기 기능
  • 리뷰 작성 및 관리
  • 프로필 수정

개발 환경

💡BackEnd

  • Language & Framework

  • DataBase

  • Image Storage

💡FrontEnd

  • Language & Framework

구성도

KakaoTalk_Photo_2023-11-11-15-21-09

프로젝트 설치

node v16.16.0 환경에서 개발되었습니다. nodejs를 설치해주세요.

1. 프로젝트 클론

이 프로젝트를 클론합니다.

git clone <해당 프로젝트 url>

2. 프로젝트 의존성 설치

이 프로젝트를 설치합니다.

npm install

3. 환경변수 설정

루트 디렉터리에 .env 파일을 생성하여 아래와 같이 api요청을 보낼 주소를 설정합니다. 환경변수를 설정하지 않으면 mock 데이터를 사용합니다.

REACT_APP_API_URL=http://localhost:3000 <-- api주소를 입력해야 함

.env 파일을 열어서 환경변수를 설정합니다.

4. 프로젝트 실행

이 프로젝트를 실행합니다.

npm run start

참여자 목록

부산대 6조 FE

이름 역할
박유정 통합 및 세부 검색, 음식 검색 페이지, 위시리스트, 마이페이지 그와 관련된 기능들
박동진 상세, 예약, 리뷰, 메인 페이지, 그와 관련된 기능들

디렉터리 구조

TripKoFE
├── README.md
├── package.json        프로젝트 의존성 및 스크립트
├── public              정적 파일
├── k8s                 k8s 설정 파일
├── prettier.config.js  prettier 설정 파일
├── tailwind.config.js  tailwind 설정 파일
├── src
│   ├── components      전체적인 컴포넌트
│   ├── hooks           커스텀 훅
│   ├── mocks           mocking을 이용한 테스트용 코드
│   │   ├── datas       mocking에 사용되는 데이터
│   ├── apis            api 호출을 위한 코드
│   ├── utils           유틸리티 코드
│   ├── store           redux store

필수 첨부자료

팀 내 배포 링크

https://k50c1bf82e6cfa.user-app.krampoline.com/

최신 ERD 이미지

image

https://www.notion.so/minmunui/ERD-209d965fd43643238198914e94840098?pvs=4

코딩에 대한 간략한 소개

  • 컴포넌트 재사용성

컴포넌트 설계가 미숙하여 완벽한 컴포넌트 재사용성을 갖추지는 못했으나, 가능한 내에서 최대한 구현하혔습니다. 가장 인상적인 것은 축제와 식당 예약에 공통적으로 사용되는 Calendar입니다.

축제와 식당 예약은 서로 다른 제약조건(축제는 기간, 식당은 정기휴일)을 가지고 있지만, 하나의 컴포넌트에서 각 제약조건을 만족할 수 있도록 구성되었습니다.

image

  • 아기자기한 UI 디자인

역량에 비해 너무 많은 작업량으로 인해 기능 구현에 급급했습니다. 하지만 그런 와중에도 최대한 아름다운 UI를 구성하려 했습니다.

예약을 하고 발급받은 티켓과 확인도장의 느낌으로 구성한 예약 내역 페이지의 ReservationCard들이 대표적입니다.

image

  • 용이한 모달 창 닫기

모달 닫기 버튼을 찾기 어려운 경우를 대비해 뒤로 버튼을 누르면 모달 창을 닫을 수 있습니다. 또한 모달 창 바깥 부분을 클릭함으로써 모달 창을 닫을 수 있습니다.

  • aria-label

커스텀으로 작성된 button의 기능을 하는 컴포넌트들에는 해당 버튼의 역할에 따른 aria-label을 추가하여 접근성 향상을 기대했습니다.

<button
  className={"button-back absolute left-4"}
  onClick={() => navigate(-1)}
  aria-label="button-back"
>
  <AiOutlineLeft size={30} />
</button>
  • 다형성을 가진 컴포넌트

as 속성을 사용해서 다형성을 가진 컴포넌트를 구성하여 재사용성을 높이려 하였습니다.

as: Component = "button"

About

6조

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages