Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yunyoungsik/fitness
React와 Rapid API를 활용해서 제작한 운동정보 탐색 웹사이트
https://github.com/yunyoungsik/fitness
rapidapi react
Last synced: 6 days ago
JSON representation
React와 Rapid API를 활용해서 제작한 운동정보 탐색 웹사이트
- Host: GitHub
- URL: https://github.com/yunyoungsik/fitness
- Owner: yunyoungsik
- Created: 2024-01-13T14:12:29.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-07-24T00:53:53.000Z (4 months ago)
- Last Synced: 2024-07-24T03:17:17.405Z (4 months ago)
- Topics: rapidapi, react
- Language: JavaScript
- Homepage: https://0sik-gym.netlify.app/
- Size: 2.27 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Fitness
Fitness Club은 다양한 운동 정보를 탐색할 수 있는 기능을 제공합니다.
사용자는 원하는 운동을 검색하거나, 특정 부위 또는 운동 기구에 따라 쉽게 필터링하여 필요한 정보를 얻을 수 있습니다.
[참고영상](https://youtu.be/KBpoBc98BwM?si=JYyjQZuUQLxoLbh4)## 설치
```js
"dependencies": {
"@emotion/react": "^11.9.0",
"@emotion/styled": "^11.8.1",
"@mui/icons-material": "^5.6.1",
"@mui/material": "^5.6.1",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"react-horizontal-scrolling-menu": "^2.7.1",
"react-loader-spinner": "^6.0.0-0",
"react-router-dom": "^6.3.0",
"react-scripts": "5.0.1"
},
```
## 주요기능
- Home
홈페이지를 구성하는 메인 페이지 컴포넌트입니다.
HeroBanner, SearchExercises, Exercises 컴포넌트를 통해 페이지를 구성하고, 상태를 관리합니다.
- ExerciseDetail
특정 운동에 대한 상세 정보를 표시하는 페이지 컴포넌트
URL Parameter에서 운동 ID 가져오기: useParams 훅을 사용하여 URL에서 운동 ID를 가져옵니다.
데이터 Fetch 및 상태 관리: useEffect 훅을 사용하여 페이지가 로드될 때 필요한 데이터를 가져와 상태에 저장합니다.
세부 정보 표시: Detail 컴포넌트를 통해 운동의 세부 정보를 표시합니다.
운동 비디오 표시: ExercisesVideos 컴포넌트를 통해 YouTube에서 검색된 운동 관련 비디오를 표시합니다.
유사한 운동 표시: SimilarExercises 컴포넌트를 통해 타겟 근육 및 장비에 따라 유사한 운동을 표시합니다.
스크롤 최상단 이동: 페이지 로드 시에 스크롤을 페이지 상단으로 이동시킵니다.
- exerciseOptions, youtubeOptions, fetchData
exerciseOptions: ExerciseDB API 및 빠른 API 키를 사용하여 운동 데이터를 가져오기 위한 옵션입니다.
youtubeOptions: YouTube 검색 및 다운로드 API 키를 사용하여 YouTube에서 운동 관련 비디오를 검색하기 위한 옵션입니다.
fetchData 함수: 주어진 URL과 옵션을 사용하여 데이터를 비동기적으로 가져오는 함수입니다. fetch를 사용하여 데이터를 가져온 후 JSON으로 변환하여 반환합니다.
- Navbar
네비게이션 바 컴포넌트입니다.
Link를 사용하여 홈페이지로 이동할 수 있는 로고와 네비게이션 링크를 제공합니다.
- Loader
로딩 상태를 표시하는 간단한 로더 컴포넌트입니다.
react-loader-spinner 라이브러리를 사용하여 무한 스핀을 표현하고 있습니다.
- HorizontalScrollbar
수평 스크롤바를 제공하는 컴포넌트입니다.
react-horizontal-scrolling-menu를 사용하여 좌우 화살표로 스크롤 가능한 아이템들을 표시합니다.
- HeroBanner
홈페이지 상단에 위치한 히어로 배너 컴포넌트입니다.
사진, 제목, 부제목, 설명 텍스트 등을 포함한 페이지의 주요 내용을 나타냅니다.
- ExercisesVideo
운동 비디오를 표시하는 컴포넌트입니다.
YouTube API를 사용하여 동적으로 비디오 리스트를 가져와 표시합니다.
- Exercises
운동 목록을 표시하고 페이지네이션을 제공하는 컴포넌트입니다.
각 운동은 ExerciseCard 컴포넌트로 표시됩니다.
- ExerciseCard
각 운동에 대한 간단한 정보와 링크를 제공하는 컴포넌트입니다.
Link를 사용하여 개별 운동 페이지로 이동할 수 있는 링크를 제공합니다.
- Detail
개별 운동 페이지에서 해당 운동의 세부 정보를 나타내는 컴포넌트입니다.
운동의 이름, 설명, 이미지 등을 표시하며, 세부 정보는 BodyPart, Target, Equipment 세 가지로 나누어 표시합니다.
- BodyPart
운동 부위를 선택할 수 있는 버튼 컴포넌트입니다.
선택된 부위는 페이지의 운동 목록을 필터링하는 데 사용됩니다.
- SearchExercises
홈페이지에서 운동 검색과 관련된 기능을 담당하는 컴포넌트입니다.
TextField를 사용하여 검색어를 입력할 수 있고, 검색 버튼을 눌러 검색을 수행합니다.
수평 스크롤바로 운동 부위 목록을 표시하고, 선택된 부위에 따라 페이지의 운동 목록을 필터링합니다.
- SimilarExercises
특정 타겟 근육이나 운동 장비에 대한 비슷한 운동을 표시하는 컴포넌트입니다.
- HorizontalScrollbar
컴포넌트를 사용하여 비슷한 운동들을 수평으로 스크롤하여 표시합니다.