Wanted-Pre-Onboarding-Frontend-3 / TMDB

0 stars 4 forks source link

원티드 프리온보딩 2주차 과제



소개



배포 링크



목차



3팀 소개 및 역할

이름 역할
김리후 팀원 / 메인페이지, Header, Footer
김지현 팀원 / upcoming page
이경준 팀원 / 검색 페이지
이혜성 팀장 / 공통영역, S3 + github actions 정적 사이트 CD
문선화 팀원 / 영화 상세 페이지
홍성준 팀원 / now playing page
서수민 팀원 / top-rated page



기술 스택



와이어프레임



실행방법

  1. Install
 $ yarn install
  1. set environment variables

    1. 링크의 사이트에 회원가입 후 api key를 발급 받습니다.

    2. package.json과 같은 디렉토리에 .env.local 파일을 생성합니다.

    3. .env.local 파일 안에 아래와 같이 작성합니다.

 REACT_APP_API_BASE_URL = 'https://api.themoviedb.org/3'
 REACT_APP_IMAGE_URL = 'https://image.tmdb.org/t/p/original'
 REACT_APP_API_KEY = '발급 받은 api_key'
  1. start the project
 $ yarn start



프로젝트 구조

프로젝트 구조 ``` 📦src ┣ 📂api ┃ ┣ 📜axios-instance.js ┃ ┣ 📜movieAPI.js ┃ ┗ 📜searchAPI.js ┣ 📂assets ┃ ┗ 📂images ┃ ┃ ┗ 📜default_poster.png ┣ 📂components ┃ ┣ 📂Search ┃ ┃ ┗ 📜common.js ┃ ┣ 📜Card.jsx ┃ ┣ 📜Footer.jsx ┃ ┣ 📜Header.jsx ┃ ┣ 📜Layout.jsx ┃ ┣ 📜Loading.jsx ┃ ┣ 📜ScrollTop.jsx ┃ ┣ 📜Skeleton.jsx ┃ ┣ 📜Slider.jsx ┃ ┗ 📜Spinner.jsx ┣ 📂hooks ┃ ┗ 📜.gitkeep ┣ 📂pages ┃ ┣ 📂Home ┃ ┃ ┣ 📂components ┃ ┃ ┃ ┣ 📜MainTrailer.jsx ┃ ┃ ┃ ┣ 📜NowPlayingSection.jsx ┃ ┃ ┃ ┣ 📜TopRatedItem.jsx ┃ ┃ ┃ ┣ 📜TopRatedSection.jsx ┃ ┃ ┃ ┗ 📜UpcomingSection.jsx ┃ ┃ ┗ 📜Home.jsx ┃ ┣ 📂MovieDetail ┃ ┃ ┣ 📂components ┃ ┃ ┃ ┣ 📜AgeTag.jsx ┃ ┃ ┃ ┣ 📜GenresTags.jsx ┃ ┃ ┃ ┣ 📜MovieDetailBody.jsx ┃ ┃ ┃ ┗ 📜MovieDetailHeader.jsx ┃ ┃ ┗ 📜MovieDetail.jsx ┃ ┣ 📂NowPlaying ┃ ┃ ┣ 📂component ┃ ┃ ┃ ┗ 📜TopMainVideo.jsx ┃ ┃ ┗ 📜NowPlaying.jsx ┃ ┣ 📂TopRated ┃ ┃ ┣ 📂components ┃ ┃ ┃ ┗ 📜MovieChart.jsx ┃ ┃ ┗ 📜TopRated.jsx ┃ ┣ 📂Upcoming ┃ ┃ ┣ 📂components ┃ ┃ ┃ ┗ 📜CardItem.jsx ┃ ┃ ┗ 📜Upcoming.jsx ┃ ┗ 📜search.jsx ┣ 📂styles ┃ ┣ 📜colors.js ┃ ┣ 📜fonts.js ┃ ┗ 📜globalStyles.js ┣ 📂utils ┃ ┣ 📜css.util.js ┃ ┣ 📜HomeUtil.js ┃ ┣ 📜PathUtil.js ┃ ┗ 📜useInView.js ┣ 📜App.js ┗ 📜index.js ```



라우팅



과제 요건 및 구현 방법

과제 요건






0. 공통기능


1. 메인페이지 (/)


2. 상세페이지 (/movie/:movie_id)


3. 리스트페이지-현재 상영작 (/now-playing)

4. 리스트페이지-상영 예정작 (/upcoming)


5. 리스트페이지-영화 순위 (/top-rated)


6. 검색페이지 (/search/:searchKeyword)

캐싱과 react-query



컨벤션 링크

링크