├── 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 |

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 |

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 | };
--------------------------------------------------------------------------------