En React-baserad webbapplikation som hämtar aktuell väderinformation baserat på användarens geografiska position och ger klädförslag anpassade efter temperaturen och väderförhållandena.
- Geolokalisering: Applikationen använder webbläsarens geolokaliseringsfunktion för att hämta användarens nuvarande position.
- Väderdata: Hämtar aktuell temperatur, väderförhållanden och platsnamn från OpenWeatherMap API.
- Klädförslag: Baserat på temperaturen och väderförhållandena ger applikationen förslag på lämpliga kläder.
- Laddningsindikator: Visar en laddningsspinner medan data hämtas för att förbättra användarupplevelsen.
- Felhantering: Hanterar situationer där geolokalisering inte är aktiverad eller väderdata inte kan hämtas, och visar relevanta felmeddelanden.
- React: För att bygga användargränssnittet.
- TypeScript: För typkontroll och förbättrad kodkvalitet.
- React Hooks: För hantering av komponenttillstånd och livscykler.
- Context API: För global tillståndshantering av väderdata.
- React Query: För hämtning av data och hantering av caching.
- Geolocation API: För att hämta användarens geografiska position.
- OpenWeatherMap API: För att hämta aktuell väderinformation.
- Axios: För att göra HTTP-anrop till väder-API:et.
- CSS: För styling av applikationen.
- Node.js (version 14 eller senare)
- npm (version 6 eller senare) eller yarn
-
Klona repositoriet
git clone https://github.com/ditt-användarnamn/ditt-repositorium.git
-
Navigera till projektmappen
cd ditt-repositorium
-
Installera beroenden
Med npm:
npm install
Eller med yarn:
yarn install
-
Skapa en
.env
-filSkapa en fil med namnet
.env
i projektets rotkatalog och lägg till din OpenWeatherMap API-nyckel:REACT_APP_WEATHER_API_KEY=din_openweathermap_api_nyckel
Obs: Du kan registrera dig för en gratis API-nyckel på OpenWeatherMap.
Starta utvecklingsservern:
Med npm:
npm start
Med yarn:
yarn start
Applikationen kommer att vara tillgänglig på http://localhost:3000
i din webbläsare.
src/hooks/useWeather.ts
: En custom hook som hämtar väderdata baserat på användarens position.src/context/WeatherContext.tsx
: Context Provider för att dela väderdata mellan komponenter.src/components
: Innehåller alla React-komponenter som används i applikationen, såsomMain
,Location
,WeatherDisplay
ochClothingSuggestion
.src/services/weatherService.ts
: Hanterar API-anrop till OpenWeatherMap.src/utils/translateCondition.ts
: Översätter väderförhållanden till svenska.
- Geolokalisering: När applikationen laddas, ber den om användarens tillåtelse att hämta geografisk position.
- Hämtar Väderdata: Med hjälp av latitud och longitud från geolokaliseringen, hämtar applikationen väderdata från OpenWeatherMap API.
- Tillståndshantering: Den hämtade datan sparas i en global context som är tillgänglig för alla komponenter.
- Visar Information:
- Plats: Visar användarens nuvarande stad eller ort.
- Temperatur och Förhållanden: Visar aktuell temperatur och väderförhållanden.
- Klädförslag: Ger rekommendationer om lämpliga kläder baserat på vädret.
- Laddningsindikator: Visar en spinner medan data laddas, och hanterar fel om något går snett.
Detta projekt är licensierat under MIT-licensen.