Follow these steps to run the project locally:
# Clone the repository
git clone https://github.com/SpartanFranco/weather-app.git
# Navigate into the project directory
cd weather-app
# Install dependencies (elige tu gestor)
# npm
npm install
# pnpm
pnpm install
# yarn
yarn install
# bun
bun install
# Start the development server
# npm
npm run dev
# pnpm
pnpm dev
# yarn
yarn dev
# bun
bun run devThe application will be available at:
http://localhost:5173Main screen displaying current weather conditions, weekly forecast, and hourly forecast.
Weather App is a modern, responsive web application that allows users to check real-time weather information and future forecasts for any location worldwide. The app is designed with a strong focus on user experience, accessibility, and clean visual presentation, adapting seamlessly to different screen sizes and devices.
Weather data is powered by the Open-Meteo API, providing accurate and up-to-date meteorological information without complex authentication requirements.
- Search for weather information by entering a city or location in the search bar.
- Automatic geolocation detection to display weather data for the user’s current location on first visit.
- Current temperature.
- Weather condition icon.
- Location name and details.
- Additional metrics:
- Feels like temperature
- Humidity percentage
- Wind speed
- Precipitation amount
- Weekly weather forecast.
- Daily high and low temperatures.
- Weather icons for each day.
- Hour-by-hour temperature changes.
- Day selector to switch between different days of the week.
- Toggle between Metric and Imperial systems.
- Switch temperature units between Celsius (°C) and Fahrenheit (°F).
- Select wind speed units (km/h or mph).
- Precipitation displayed in millimeters.
- Save favorite locations for quick access.
- Compare Locations feature to view weather data side-by-side for multiple cities.
- UV Index
- Visibility
- Air pressure
- Search for locations using voice input for a faster and more accessible experience.
- Fully responsive layout optimized for mobile, tablet, and desktop devices.
- Hover and focus states for all interactive elements to improve usability and accessibility.
- Framework: React 19 + TypeScript + Vite 7
- Styling: Tailwind CSS 4, HeroUI (components)
- State and Data Management: TanStack Query 5, Zustand
- Routing: React Router 7
- Animations and Icons: Framer Motion, Lucide Icons
- HTTP and APIs: Axios, Open-Meteo (weather data)
- Browser Features: Geolocation API, Web Speech API (voice search)
- Quality: ESLint, Prettier, React Compiler (Babel plugin)
This project is licensed under the MIT License. You are free to use, modify, and distribute it.
Developed by Geovani Franco 🚀
If you find this project useful, feel free to give it a ⭐ on GitHub.
