├── README.md ├── public ├── favicon.ico ├── logo192.png ├── logo512.png ├── robots.txt ├── manifest.json └── index.html ├── .env ├── src ├── assets │ ├── icons │ │ ├── gym.png │ │ ├── target.png │ │ ├── body-part.png │ │ ├── equipment.png │ │ ├── left-arrow.png │ │ └── right-arrow.png │ └── images │ │ ├── Logo-1.png │ │ ├── Logo.png │ │ └── banner.png ├── index.js ├── components │ ├── Loader.js │ ├── Footer.js │ ├── Navbar.js │ ├── ExerciseCard.js │ ├── BodyPart.js │ ├── HorizontalScrollbar.js │ ├── SimilarExercises.js │ ├── HeroBanner.js │ ├── ExerciseVideos.js │ ├── Detail.js │ ├── Exercises.js │ └── SearchExercises.js ├── utils │ └── fetchData.js ├── App.js ├── pages │ ├── Home.js │ └── ExerciseDetail.js └── App.css ├── .gitignore └── package.json /README.md: -------------------------------------------------------------------------------- 1 | React Exercise Application -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/public/logo192.png -------------------------------------------------------------------------------- /public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/public/logo512.png -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | REACT_APP_RAPID_API_KEY=ccfcae50dcmsh5a50faecda0a98ep1de6ccjsn8465450cdbc7 2 | ESLINT_NO_DEV_ERRORS=true -------------------------------------------------------------------------------- /src/assets/icons/gym.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/src/assets/icons/gym.png -------------------------------------------------------------------------------- /src/assets/icons/target.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/src/assets/icons/target.png -------------------------------------------------------------------------------- /src/assets/images/Logo-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/src/assets/images/Logo-1.png -------------------------------------------------------------------------------- /src/assets/images/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/src/assets/images/Logo.png -------------------------------------------------------------------------------- /src/assets/images/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/src/assets/images/banner.png -------------------------------------------------------------------------------- /src/assets/icons/body-part.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/src/assets/icons/body-part.png -------------------------------------------------------------------------------- /src/assets/icons/equipment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/src/assets/icons/equipment.png -------------------------------------------------------------------------------- /src/assets/icons/left-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/src/assets/icons/left-arrow.png -------------------------------------------------------------------------------- /src/assets/icons/right-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emredkyc/exercise_app/HEAD/src/assets/icons/right-arrow.png -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import { BrowserRouter } from "react-router-dom"; 4 | 5 | import App from "./App"; 6 | 7 | const root = ReactDOM.createRoot(document.getElementById('root')); 8 | 9 | root.render( 10 | 11 | 12 | 13 | 14 | 15 | ); -------------------------------------------------------------------------------- /src/components/Loader.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Stack } from "@mui/material"; 3 | import { InfinitySpin } from "react-loader-spinner"; 4 | 5 | const Loader = () => ( 6 | 12 | 13 | 14 | ); 15 | 16 | export default Loader -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | 17 | # local env files 18 | .env 19 | .env.local 20 | .env.development.local 21 | .env.test.local 22 | .env.production.local 23 | 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /src/utils/fetchData.js: -------------------------------------------------------------------------------- 1 | export const exerciseOptions = { 2 | method: "GET", 3 | headers: { 4 | "X-RapidAPI-Host": "exercisedb.p.rapidapi.com", 5 | "X-RapidAPI-Key": process.env.REACT_APP_RAPID_API_KEY, 6 | }, 7 | }; 8 | 9 | export const youtubeOptions = { 10 | method: "GET", 11 | headers: { 12 | "X-RapidAPI-Host": "youtube-search-and-download.p.rapidapi.com", 13 | "X-RapidAPI-Key": process.env.REACT_APP_RAPID_API_KEY, 14 | }, 15 | }; 16 | 17 | export const fetchData = async (url, options) => { 18 | const res = await fetch(url, options); 19 | const data = await res.json(); 20 | 21 | return data; 22 | } 23 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Route, Routes } from 'react-router-dom'; 3 | import { Box } from '@mui/material'; 4 | 5 | import './App.css'; 6 | import ExerciseDetail from './pages/ExerciseDetail'; 7 | import Home from './pages/Home'; 8 | import Navbar from './components/Navbar'; 9 | import Footer from './components/Footer'; 10 | 11 | const App = () => ( 12 | 13 | 14 | 15 | } /> 16 | } /> 17 | 18 |