A modern, responsive weather dashboard built with React, TypeScript, and Zustand. Get real-time weather forecasts and current conditions with a clean, intuitive interface.
- Real-time weather data from OpenWeather API
- 5-day forecast with hourly breakdown
- Responsive design – works on desktop, tablet, and mobile
- Clean UI with dynamic backgrounds based on weather conditions
- Frontend: React 19 + TypeScript
- State Management: Zustand
- Styling: CSS Modules
- API: OpenWeather API
- Build Tool: Vite
- Linting: ESLint (TypeScript-aware rules)
-
Clone the repository
git clone https://github.com/AvatarN03/WeatherBoard.git cd WeatherBoard -
Install dependencies
npm install
-
Get an API key
- Sign up at OpenWeather
- Copy your API key
-
Set up environment variables Create a
.envfile in the root directory:VITE_OPENWEATHER_API_KEY=your_api_key_here
-
Start the development server
npm run dev
npm run dev– Start dev server with HMRnpm run build– Build for productionnpm run preview– Preview production build locallynpm run lint– Run ESLint
WeatherBoard/
├── src/
│ ├── components/ # Reusable UI components
│ ├── stores/ # Zustand state stores
│ ├── services/ # API calls and data formatting
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Helper functions
│ ├── App.tsx
│ └── main.tsx
├── public/
├── index.html
├── package.json
└── README.md
This project uses the OpenWeather API:
- Current Weather Data –
https://api.openweathermap.org/data/2.5/weather - 5-day / 3-hour Forecast –
https://api.openweathermap.org/data/2.5/forecast
- Mobile: < 640px
- Tablet: 640px – 1024px
- Desktop: > 1024px
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
Prashanth Naidu (AvatarN03)
- GitHub: @AvatarN03
- Project Link: https://github.com/AvatarN03/WeatherBoard
- Weather data provided by OpenWeather
- Built with Vite + React
⭐️ If you found this project helpful, give it a star on GitHub! ⭐️