├── src ├── App.css ├── setupTests.js ├── index.css ├── reportWebVitals.js ├── api.js ├── index.js ├── components │ ├── search │ │ └── search.js │ ├── forecast │ │ ├── forecast.css │ │ └── forecast.js │ └── current-weather │ │ ├── current-weather.css │ │ └── current-weather.js └── App.js ├── public ├── robots.txt ├── favicon.ico ├── icons │ ├── 01d.png │ ├── 01n.png │ ├── 02d.png │ ├── 02n.png │ ├── 03d.png │ ├── 03n.png │ ├── 04d.png │ ├── 04n.png │ ├── 09d.png │ ├── 09n.png │ ├── 10d.png │ ├── 10n.png │ ├── 11d.png │ ├── 11n.png │ ├── 13d.png │ ├── 13n.png │ ├── 50d.png │ ├── 50n.png │ └── unknown.png ├── logo192.png ├── logo512.png ├── manifest.json ├── index.html └── env.js ├── .gitignore ├── README.md └── package.json /src/App.css: -------------------------------------------------------------------------------- 1 | .container { 2 | max-width: 1080px; 3 | margin: 20px auto; 4 | } -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/icons/01d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/01d.png -------------------------------------------------------------------------------- /public/icons/01n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/01n.png -------------------------------------------------------------------------------- /public/icons/02d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/02d.png -------------------------------------------------------------------------------- /public/icons/02n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/02n.png -------------------------------------------------------------------------------- /public/icons/03d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/03d.png -------------------------------------------------------------------------------- /public/icons/03n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/03n.png -------------------------------------------------------------------------------- /public/icons/04d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/04d.png -------------------------------------------------------------------------------- /public/icons/04n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/04n.png -------------------------------------------------------------------------------- /public/icons/09d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/09d.png -------------------------------------------------------------------------------- /public/icons/09n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/09n.png -------------------------------------------------------------------------------- /public/icons/10d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/10d.png -------------------------------------------------------------------------------- /public/icons/10n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/10n.png -------------------------------------------------------------------------------- /public/icons/11d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/11d.png -------------------------------------------------------------------------------- /public/icons/11n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/11n.png -------------------------------------------------------------------------------- /public/icons/13d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/13d.png -------------------------------------------------------------------------------- /public/icons/13n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/13n.png -------------------------------------------------------------------------------- /public/icons/50d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/50d.png -------------------------------------------------------------------------------- /public/icons/50n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/50n.png -------------------------------------------------------------------------------- /public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/logo192.png -------------------------------------------------------------------------------- /public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/logo512.png -------------------------------------------------------------------------------- /public/icons/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Adityaadpandey/react-weather-app/HEAD/public/icons/unknown.png -------------------------------------------------------------------------------- /src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: "Roboto", Arial, sans-serif !important; 4 | -webkit-font-smoothing: antialiased; 5 | -moz-osx-font-smoothing: grayscale; 6 | background-color: #6e6e6e; 7 | } 8 | 9 | code { 10 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 11 | monospace; 12 | } 13 | -------------------------------------------------------------------------------- /.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 | .env 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/api.js: -------------------------------------------------------------------------------- 1 | // require ('dotenv').config(); 2 | 3 | export const geoApiOptions = { 4 | method: "GET", 5 | headers: { 6 | 'X-RapidAPI-Key': process.env.REACT_APP_X_RapidAPI_Key, 7 | 'X-RapidAPI-Host': 'wft-geo-db.p.rapidapi.com' 8 | }, 9 | }; 10 | export const GEO_API_URL = 'https://wft-geo-db.p.rapidapi.com/v1/geo' 11 | 12 | export const WEATHER_API_URL = "https://api.openweathermap.org/data/2.5"; 13 | export const WEATHER_API_KEY = process.env.REACT_APP_WEATHER_API_KEY 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # This is Simple Weather App 2 | We are Using the Two APIs to get the Weather Data 3 | ### 💻 OpenWeather API: https://openweathermap.org/ 4 | 5 | ### 💻 GeoDB Cities API: https://rapidapi.com/wirefreethought/api/geodb-cities/ 6 | 7 | 8 | ### Add the env file to make the app work 9 | and give Two things in the env file 10 | 11 | 12 | WEATHER_API_KEY = "OpenWeather API Key" 13 | X-RapidAPI-Key = "GeoDB Cities API Key" 14 | 15 | 16 | ## To install all the dependencies 17 | 18 | `npm install --force` 19 | 20 | `npm start` -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import './index.css'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | const root = ReactDOM.createRoot(document.getElementById('root')); 8 | root.render( 9 | 10 | 11 | 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-weather-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@testing-library/jest-dom": "^5.16.4", 7 | "@testing-library/react": "^13.3.0", 8 | "@testing-library/user-event": "^13.5.0", 9 | "dotenv": "^16.0.1", 10 | "react": "^18.2.0", 11 | "react-accessible-accordion": "^5.0.0", 12 | "react-dom": "^18.2.0", 13 | "react-scripts": "5.0.1", 14 | "react-select-async-paginate": "^0.6.1", 15 | "web-vitals": "^2.1.4" 16 | }, 17 | "scripts": { 18 | "start": "react-scripts start", 19 | "build": "react-scripts build", 20 | "test": "react-scripts test", 21 | "eject": "react-scripts eject" 22 | }, 23 | "eslintConfig": { 24 | "extends": [ 25 | "react-app", 26 | "react-app/jest" 27 | ] 28 | }, 29 | "browserslist": { 30 | "production": [ 31 | ">0.2%", 32 | "not dead", 33 | "not op_mini all" 34 | ], 35 | "development": [ 36 | "last 1 chrome version", 37 | "last 1 firefox version", 38 | "last 1 safari version" 39 | ] 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/components/search/search.js: -------------------------------------------------------------------------------- 1 | import React, { useState } from "react"; 2 | import { AsyncPaginate } from "react-select-async-paginate"; 3 | import { geoApiOptions, GEO_API_URL } from "../../api"; 4 | 5 | const Search = ({ onSearchChange }) => { 6 | const [search, setSearch] = useState(null); 7 | 8 | const loadOptions = (inputValue) => { 9 | return fetch( 10 | `${GEO_API_URL}/cities?namePrefix=${inputValue}`, 11 | geoApiOptions 12 | ) 13 | .then((response) => response.json()) 14 | .then((response) => { 15 | return { 16 | options: response.data.map((city) => { 17 | return { 18 | value: `${city.latitude} ${city.longitude}`, 19 | label: `${city.name}, ${city.countryCode}`, 20 | }; 21 | }), 22 | }; 23 | }); 24 | }; 25 | 26 | const handleOnChange = (searchData) => { 27 | setSearch(searchData); 28 | onSearchChange(searchData); 29 | }; 30 | 31 | return ( 32 | 39 | ); 40 | }; 41 | 42 | export default Search; 43 | -------------------------------------------------------------------------------- /src/components/forecast/forecast.css: -------------------------------------------------------------------------------- 1 | .title { 2 | font-size: 23px; 3 | font-weight: 700; 4 | } 5 | 6 | .daily-item { 7 | background-color: #cecece; 8 | border-radius: 15px; 9 | height: 40px; 10 | margin: 5px; 11 | align-items: center; 12 | cursor: pointer; 13 | display: flex; 14 | font-size: 14px; 15 | padding: 5px 20px; 16 | } 17 | 18 | .icon-small { 19 | width: 40px; 20 | } 21 | 22 | .daily-item .day { 23 | cursor: inherit; 24 | color: #212121; 25 | flex: 1 1; 26 | font-weight: 600; 27 | margin-left: 15px; 28 | } 29 | 30 | .description { 31 | cursor: inherit; 32 | flex: 1 1; 33 | margin-right: 15px; 34 | text-align: right; 35 | } 36 | 37 | .min-max { 38 | color: #757575; 39 | } 40 | 41 | .daily-details-grid { 42 | grid-row-gap: 0; 43 | grid-column-gap: 15px; 44 | -webkit-column-gap: 15px; 45 | column-gap: 15px; 46 | display: grid; 47 | flex: 1 1; 48 | grid-template-columns: auto auto; 49 | padding: 5px 15px; 50 | row-gap: 0; 51 | } 52 | 53 | .daily-details-grid-item { 54 | align-items: center; 55 | display: flex; 56 | height: 30px; 57 | justify-content: space-between; 58 | } 59 | 60 | .daily-details-grid-item label:first-child { 61 | color: #ffffff; 62 | font-size: 17px; 63 | } 64 | 65 | .daily-details-grid-item label:last-child { 66 | color: #000000; 67 | } -------------------------------------------------------------------------------- /src/components/current-weather/current-weather.css: -------------------------------------------------------------------------------- 1 | .weather { 2 | width: 300px; 3 | border-radius: 6px; 4 | box-shadow: 10px -2px 20px 2px rgb(0 0 0 / 30%); 5 | color: #fff; 6 | background-color: #333; 7 | margin: 20px auto 0 auto; 8 | padding: 0 20px 20px 20px; 9 | } 10 | 11 | .top, 12 | .bottom { 13 | display: flex; 14 | justify-content: space-between; 15 | align-items: center; 16 | } 17 | 18 | .city { 19 | font-weight: 600; 20 | font-size: 18px; 21 | line-height: 1; 22 | margin: 0; 23 | letter-spacing: 1px; 24 | } 25 | 26 | .weather-description { 27 | font-weight: 400; 28 | font-size: 14px; 29 | line-height: 1; 30 | margin: 0; 31 | } 32 | 33 | .weather-icon { 34 | width: 100px; 35 | } 36 | 37 | .temperature { 38 | font-weight: 600; 39 | font-size: 70px; 40 | width: auto; 41 | letter-spacing: -5px; 42 | margin: 10px 0; 43 | } 44 | 45 | .details { 46 | width: 100%; 47 | padding-left: 20px; 48 | } 49 | 50 | .parameter-row { 51 | display: flex; 52 | justify-content: space-between; 53 | } 54 | 55 | .parameter-label { 56 | text-align: left; 57 | font-weight: 400; 58 | font-size: 12px; 59 | } 60 | 61 | .parameter-value { 62 | text-align: right; 63 | font-weight: 600; 64 | font-size: 12px; 65 | } 66 | 67 | .parameter-label.top { 68 | border-bottom: 1px solid #fff; 69 | } 70 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import { useState } from "react"; 2 | import Search from "./components/search/search"; 3 | import CurrentWeather from "./components/current-weather/current-weather"; 4 | import Forecast from "./components/forecast/forecast"; 5 | import { WEATHER_API_URL, WEATHER_API_KEY } from "./api"; 6 | import "./App.css"; 7 | 8 | function App() { 9 | const [currentWeather, setCurrentWeather] = useState(null); 10 | const [forecast, setForecast] = useState(null); 11 | 12 | const handleOnSearchChange = (searchData) => { 13 | const [lat, lon] = searchData.value.split(" "); 14 | 15 | const currentWeatherFetch = fetch( 16 | `${WEATHER_API_URL}/weather?lat=${lat}&lon=${lon}&appid=${WEATHER_API_KEY}&units=metric` 17 | ); 18 | const forecastFetch = fetch( 19 | `${WEATHER_API_URL}/forecast?lat=${lat}&lon=${lon}&appid=${WEATHER_API_KEY}&units=metric` 20 | ); 21 | 22 | Promise.all([currentWeatherFetch, forecastFetch]) 23 | .then(async (response) => { 24 | const weatherResponse = await response[0].json(); 25 | const forcastResponse = await response[1].json(); 26 | 27 | setCurrentWeather({ city: searchData.label, ...weatherResponse }); 28 | setForecast({ city: searchData.label, ...forcastResponse }); 29 | }) 30 | .catch(console.log); 31 | }; 32 | 33 | return ( 34 |
35 | 36 | {currentWeather && } 37 | {forecast && } 38 |
39 | ); 40 | } 41 | 42 | export default App; 43 | -------------------------------------------------------------------------------- /src/components/current-weather/current-weather.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import "./current-weather.css"; 3 | 4 | const CurrentWeather = ({ data }) => { 5 | return ( 6 |
7 |
8 |
9 |

{data.city}

10 |

{data.weather[0].description}

11 |
12 | weather 17 |
18 |
19 |

{Math.round(data.main.temp)}°C

20 |
21 |
22 | Details 23 |
24 |
25 | Feels like 26 | 27 | {Math.round(data.main.feels_like)}°C 28 | 29 |
30 |
31 | Wind 32 | {data.wind.speed} m/s 33 |
34 |
35 | Humidity 36 | {data.main.humidity}% 37 |
38 |
39 | Pressure 40 | {data.main.pressure} hPa 41 |
42 |
43 |
44 |
45 | ); 46 | }; 47 | 48 | export default CurrentWeather; 49 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | Weather App 28 | 29 | 30 | 31 | 32 |
33 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/components/forecast/forecast.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { 3 | Accordion, 4 | AccordionItem, 5 | AccordionItemHeading, 6 | AccordionItemButton, 7 | AccordionItemPanel, 8 | } from "react-accessible-accordion"; 9 | import "./forecast.css"; 10 | 11 | const WEEK_DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; 12 | 13 | const Forecast = ({ data }) => { 14 | const dayInAWeek = new Date().getDay(); 15 | const forecastDays = WEEK_DAYS.slice(dayInAWeek, WEEK_DAYS.length).concat(WEEK_DAYS.slice(0, dayInAWeek)); 16 | 17 | return ( 18 | <> 19 | 20 | 21 | {data.list.splice(0, 7).map((item, idx) => ( 22 | 23 | 24 | 25 |
26 | weather 27 | 28 | 29 | 30 |
31 |
32 |
33 | 34 |
35 |
36 | 37 | 38 |
39 |
40 | 41 | 42 |
43 |
44 | 45 | 46 |
47 |
48 | 49 | 50 |
51 |
52 | 53 | 54 |
55 |
56 | 57 | 58 |
59 |
60 |
61 |
62 | ))} 63 |
64 | 65 | ); 66 | }; 67 | 68 | export default Forecast; 69 | -------------------------------------------------------------------------------- /public/env.js: -------------------------------------------------------------------------------- 1 | window.env = { 2 | "LANGUAGE": "en_IN:en", 3 | "USER": "aditya", 4 | "npm_config_user_agent": "npm/8.11.0 node/v16.16.0 linux x64 workspaces/false", 5 | "XDG_SEAT": "seat0", 6 | "XDG_SESSION_TYPE": "x11", 7 | "SSH_AGENT_PID": "1113", 8 | "GIT_ASKPASS": "/usr/share/code/resources/app/extensions/git/dist/askpass.sh", 9 | "npm_node_execpath": "/usr/bin/node", 10 | "SHLVL": "1", 11 | "npm_config_noproxy": "", 12 | "HOME": "/home/aditya", 13 | "CHROME_DESKTOP": "code-url-handler.desktop", 14 | "OLDPWD": "/home/aditya/Desktop/react-weather-app", 15 | "LESS": "-R", 16 | "DESKTOP_SESSION": "cinnamon", 17 | "TERM_PROGRAM_VERSION": "1.69.0", 18 | "npm_package_json": "/home/aditya/Desktop/react-weather-app/package.json", 19 | "GIO_LAUNCHED_DESKTOP_FILE": "/usr/share/applications/code.desktop", 20 | "ZSH": "/home/aditya/.oh-my-zsh", 21 | "LSCOLORS": "Gxfxcxdxbxegedabagacad", 22 | "GTK_MODULES": "gail:atk-bridge", 23 | "XDG_SEAT_PATH": "/org/freedesktop/DisplayManager/Seat0", 24 | "APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL": "true", 25 | "VSCODE_GIT_ASKPASS_MAIN": "/usr/share/code/resources/app/extensions/git/dist/askpass-main.js", 26 | "PAGER": "less", 27 | "VSCODE_GIT_ASKPASS_NODE": "/usr/share/code/code", 28 | "npm_config_userconfig": "/home/aditya/.npmrc", 29 | "npm_config_local_prefix": "/home/aditya/Desktop/react-weather-app", 30 | "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", 31 | "GIO_LAUNCHED_DESKTOP_FILE_PID": "1760", 32 | "COLORTERM": "truecolor", 33 | "COLOR": "1", 34 | "npm_config_metrics_registry": "https://registry.npmjs.org/", 35 | "QT_QPA_PLATFORMTHEME": "qt5ct", 36 | "LOGNAME": "aditya", 37 | "_": "/usr/bin/npm", 38 | "npm_config_prefix": "/usr", 39 | "XDG_SESSION_CLASS": "user", 40 | "XDG_SESSION_ID": "c2", 41 | "GTK_OVERLAY_SCROLLING": "1", 42 | "TERM": "xterm-256color", 43 | "npm_config_cache": "/home/aditya/.npm", 44 | "GNOME_DESKTOP_SESSION_ID": "this-is-deprecated", 45 | "npm_config_node_gyp": "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js", 46 | "PATH": "/home/aditya/Desktop/react-weather-app/node_modules/.bin:/home/aditya/Desktop/node_modules/.bin:/home/aditya/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/usr/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/aditya/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin", 47 | "GDM_LANG": "en_US", 48 | "GTK3_MODULES": "xapp-gtk3-module", 49 | "SESSION_MANAGER": "local/aditya:@/tmp/.ICE-unix/1021,unix/aditya:/tmp/.ICE-unix/1021", 50 | "NODE": "/usr/bin/node", 51 | "npm_package_name": "react-weather-app", 52 | "XDG_SESSION_PATH": "/org/freedesktop/DisplayManager/Session0", 53 | "XDG_RUNTIME_DIR": "/run/user/1000", 54 | "GDK_BACKEND": "x11", 55 | "DISPLAY": ":0", 56 | "LANG": "en_GB.UTF-8", 57 | "XDG_CURRENT_DESKTOP": "X-Cinnamon", 58 | "XDG_SESSION_DESKTOP": "cinnamon", 59 | "XAUTHORITY": "/home/aditya/.Xauthority", 60 | "TERM_PROGRAM": "vscode", 61 | "VSCODE_GIT_IPC_HANDLE": "/run/user/1000/vscode-git-5f04a87ece.sock", 62 | "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:", 63 | "npm_lifecycle_script": "react-dotenv && react-scripts start", 64 | "XDG_GREETER_DATA_DIR": "/var/lib/lightdm-data/aditya", 65 | "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh", 66 | "GSETTINGS_SCHEMA_DIR": "/home/aditya/data", 67 | "ORIGINAL_XDG_CURRENT_DESKTOP": "X-Cinnamon", 68 | "SHELL": "/usr/bin/zsh", 69 | "npm_package_version": "0.1.0", 70 | "npm_lifecycle_event": "start", 71 | "QT_ACCESSIBILITY": "1", 72 | "GDMSESSION": "cinnamon", 73 | "GPG_AGENT_INFO": "/run/user/1000/gnupg/S.gpg-agent:0:1", 74 | "XDG_VTNR": "7", 75 | "VSCODE_GIT_ASKPASS_EXTRA_ARGS": "--ms-enable-electron-run-as-node", 76 | "npm_config_globalconfig": "/usr/etc/npmrc", 77 | "npm_config_init_module": "/home/aditya/.npm-init.js", 78 | "PWD": "/home/aditya/Desktop/react-weather-app", 79 | "npm_execpath": "/usr/lib/node_modules/npm/bin/npm-cli.js", 80 | "XDG_CONFIG_DIRS": "/etc/xdg/xdg-cinnamon:/etc/xdg", 81 | "XDG_DATA_DIRS": "/usr/share/cinnamon:/usr/share/gnome:/home/aditya/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share", 82 | "npm_config_global_prefix": "/usr", 83 | "npm_command": "start", 84 | "INIT_CWD": "/home/aditya/Desktop/react-weather-app", 85 | "EDITOR": "vi", 86 | "REACT_APP_WEATHER_API_KEY": "ee559c0bd0f74824ace526131477ac41", 87 | "REACT_APP_X_RapidAPI_Key": "7c031066c7msha5dee6b4dc578bap1cc394jsnbaf4d81cd067" 88 | }; --------------------------------------------------------------------------------