Giter Club home page Giter Club logo

wonflix's Introduction

프로젝트 소개

원티드 프리온보딩 1주차

영화 검색 기능 서비스 팀프로젝트 입니다.

와이어프레임

Figma : https://www.figma.com/file/xuNG7O0WGr30z7zg8vqZha/pre-onboarding-week1-1?node-id=2%3A3

배포

https://wonfilx.herokuapp.com/

팀원

이름 팀 구성 기능 구현 및 역할
김수빈 팀원
Frontend
- json-server를 이용한 api
- 정렬 select box 추가
- server.js 작성 + 서버 배포
- 영화 목록 UI 작업
김민주 팀원
Frontend
- 준비 중
이상지 팀장
Frontend
- Wire frame제작, 초기세팅
이혜림 팀원
Frontend
- Throtling, debouncing
홍승연 팀원
Frontend
- Movie Card 제작

src

📦src
 ┣ 📂api
 ┃ ┣ 📜config.js
 ┃ ┣ 📜useGetMovie.js
 ┃ ┣ 📜useSearch.js
 ┃ ┣ 📜useSortMovie.js
 ┃ ┗ 📜useUpdateFavorite.js
 ┣ 📂assets
 ┃ ┗ 📂svgs
 ┃ ┃ ┣ 📜check.svg
 ┃ ┃ ┣ 📜close.svg
 ┃ ┃ ┣ 📜index.js
 ┃ ┃ ┣ 📜logo.svg
 ┃ ┃ ┣ 📜move_to_top.svg
 ┃ ┃ ┣ 📜search.svg
 ┃ ┃ ┣ 📜search_bold.svg
 ┃ ┃ ┣ 📜star_empty.svg
 ┃ ┃ ┗ 📜star_filled.svg
 ┣ 📂components
 ┃ ┣ 📂Favorites
 ┃ ┃ ┗ 📜Favorites.jsx
 ┃ ┣ 📂Header
 ┃ ┃ ┣ 📂SearchForm
 ┃ ┃ ┃ ┣ 📜SearchForm.jsx
 ┃ ┃ ┃ ┗ 📜searchForm.scss
 ┃ ┃ ┣ 📜Header.jsx
 ┃ ┃ ┣ 📜TopButton.jsx
 ┃ ┃ ┣ 📜header.scss
 ┃ ┃ ┗ 📜topButton.scss
 ┃ ┣ 📂Modal
 ┃ ┃ ┣ 📜index.jsx
 ┃ ┃ ┗ 📜modal.scss
 ┃ ┣ 📂Movies
 ┃ ┃ ┣ 📂Card
 ┃ ┃ ┃ ┣ 📜Card.jsx
 ┃ ┃ ┃ ┗ 📜card.scss
 ┃ ┃ ┣ 📂ModalContent
 ┃ ┃ ┃ ┣ 📜ModalContent.jsx
 ┃ ┃ ┃ ┗ 📜modalContent.scss
 ┃ ┃ ┣ 📂MovieSort
 ┃ ┃ ┃ ┣ 📜MovieSort.jsx
 ┃ ┃ ┃ ┗ 📜movieSort.scss
 ┃ ┃ ┣ 📜index.jsx
 ┃ ┃ ┗ 📜movies.scss
 ┃ ┣ 📂Search
 ┃ ┃ ┣ 📂Dropdown
 ┃ ┃ ┃ ┣ 📜Dropdown.jsx
 ┃ ┃ ┃ ┣ 📜DropdownItems.jsx
 ┃ ┃ ┃ ┣ 📜SearchLog.jsx
 ┃ ┃ ┃ ┗ 📜dropdown.scss
 ┃ ┃ ┣ 📂SearchForm
 ┃ ┃ ┃ ┣ 📜SearchForm.jsx
 ┃ ┃ ┃ ┗ 📜searchForm.scss
 ┃ ┃ ┣ 📜Search.jsx
 ┃ ┃ ┗ 📜search.scss
 ┃ ┗ 📜Portal.jsx
 ┣ 📂data
 ┃ ┗ 📜movies.json
 ┣ 📂hooks
 ┃ ┣ 📜useDebounce.js
 ┃ ┣ 📜useHandleScroll.js
 ┃ ┣ 📜useInfiniteData.js
 ┃ ┣ 📜useObserver.js
 ┃ ┗ 📜useThrottle.js
 ┣ 📂routes
 ┃ ┣ 📂Favorites
 ┃ ┃ ┣ 📜Favorites.jsx
 ┃ ┃ ┗ 📜favorites.scss
 ┃ ┣ 📂Home
 ┃ ┃ ┣ 📜Home.jsx
 ┃ ┃ ┗ 📜home.scss
 ┃ ┣ 📂Layout
 ┃ ┃ ┗ 📜Layout.jsx
 ┃ ┣ 📂NotFound404
 ┃ ┃ ┣ 📜NotFound.jsx
 ┃ ┃ ┗ 📜notFound404.scss
 ┃ ┣ 📜Routes.module.scss
 ┃ ┗ 📜index.jsx
 ┣ 📂store
 ┃ ┣ 📜modal.js
 ┃ ┣ 📜movies.js
 ┃ ┗ 📜search.js
 ┣ 📂styles
 ┃ ┣ 📂base
 ┃ ┃ ┣ 📜_fonts.scss
 ┃ ┃ ┣ 📜_more.scss
 ┃ ┃ ┗ 📜_reset.scss
 ┃ ┣ 📂constants
 ┃ ┃ ┣ 📜_colors.scss
 ┃ ┃ ┗ 📜_sizes.scss
 ┃ ┣ 📂mixins
 ┃ ┃ ┣ 📜_animation.scss
 ┃ ┃ ┗ 📜_responsive.scss
 ┃ ┣ 📜index.js
 ┃ ┗ 📜index.scss
 ┣ 📂util
 ┃ ┗ 📜replaceItemAtIndex.js
 ┣ 📜App.jsx
 ┣ 📜App.scss
 ┣ 📜index.js
 ┗ 📜server.js

상세 구현 사항

수빈

json-server api

  • json-server 기초 세팅 data/movies.json이 port 8000에서 나오도록 개발환경 세팅
  • api 폴더 안에 훅을 사용하여 데이터를 get, patch(수정) 할 수 있도록 하였습니다.

정렬 select box

_sort=year, _sort=rating / _order=DESC 내림차순정렬된 데이터를 받아올 수 있도록 하였습니다.

sort

서버 배포

server.js를 생성하고 json-server을 이용하여 node로 서버 실행이 가능하도록 작업했습니다. 배포는 heroku로 하였습니다.

url 변경

url

배포 package.json heroku-postbuild 추가 하고 node src/server.js로 실행하도록 수정

서버배포



민주

-



상지

-

혜림

Debounce & Throttle

  • 검색어에 Custom Hook으로 Debounce를 구현하고 헤더와 toTop버튼에 사용자의 스크롤 동작을 Throttle 적용된 형태로 감지하여 down일때는 디스플레이를 숨기는 인터랙션을 구현했습니다.

Infinite Scroll

  • Intersection Observer를 사용하여 무한스크롤을 구현하고 서버로부터 search, sort 시에도 페이징 처리했습니다.
  • custom hook으로 분리하여 가독성을 높였습니다.

json-server api

  • json-server 기초 세팅 data/movies.json이 port 8000에서 나오도록 개발환경 세팅
  • api 폴더 안에 훅을 사용하여 데이터를 get, patch(수정) 할 수 있도록 하였습니다.

Responsive view

  • User Experience 향상을 위해 반응형 웹을 구현하였습니다.
  • 모바일에서는 toTop버튼이 스크롤시 사라지고, 그 이상 스크린에서는 보입니다.
  • 모바일에서는 toTop버튼의 마진이 적용되지 않아 화면 끝으로 갑니다.
  • 카드는 한줄 당 갤럭시폴드에서는 1개, 나머지 모바일에서는 2개, 타블렛(세로)에서는 3개, 타블렛(가로)와 그 이상 스크린에서는 4개가 표시됩니다.


승연

-

wonflix's People

Contributors

dev-redo avatar manjyuriah avatar matty255 avatar saanglee avatar soob1008 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.