A modern weather forecast application for Bangkok Metropolitan Region. Get accurate weather information with a beautiful and intuitive interface, built with React and TypeScript.
🚀 Live Demo - Coming Soon
- Frontend: React 18, TypeScript, Vite
- Styling: TailwindCSS, shadcn/ui, Radix UI
- Icons: Lucide React
- API Client: Axios (OpenWeatherMap API)
- 🌡️ Real-time weather data from OpenWeatherMap API
- 📅 5-day weather forecast with detailed daily breakdown
- 📊 Comprehensive weather statistics (humidity, wind, feels like)
- 🌧️ Precipitation probability and weather descriptions
- 🔄 Demo mode with simulated data (no API key required)
- 🏙️ Bangkok - All 50 districts covered
- 🌆 Metropolitan Region:
- Nonthaburi Province
- Pathum Thani Province
- Samut Prakan Province
- Samut Sakhon Province
- Nakhon Pathom Province
- 🔍 Intelligent search by district/province with auto-suggestions
- 📱 Fully responsive design optimized for all devices
- 🎨 Modern UI with smooth animations and glass-morphism effects
- ⚡ Fast loading with smart caching (15-minute cache)
- 🌈 Beautiful gradient backgrounds and weather-appropriate icons
- 🔑 Supports both real API and demo data modes
- Node.js 18+ and npm
- Modern web browser
git clone https://github.com/windme2/windsphere.git
cd windspherenpm installnpm run devApp will be available at http://localhost:5173
By default, the app uses demo data with simulated weather information.
To use real weather data from OpenWeatherMap:
- Get a free API key from OpenWeatherMap
- Copy
.env.exampleto.env - Add your API key:
VITE_WEATHER_API_KEY=your_api_key_here- Restart the dev server
npm run build
npm run previewwindsphere/
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── ui/ # shadcn/ui components
│ │ └── ...
│ ├── config/ # Configuration files
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions
│ ├── pages/ # Page components
│ ├── services/ # API and business logic
│ │ ├── weather.api.ts # API client
│ │ └── weather.service.ts # Weather service layer
│ └── types/ # TypeScript type definitions
├── public/ # Static assets
└── ...config files
| File | Description |
|---|---|
vite.config.ts |
⚡ Vite bundler configuration |
tailwind.config.js |
🎨 TailwindCSS customization |
postcss.config.cjs |
🎯 PostCSS plugins setup |
tsconfig.json |
📘 TypeScript compiler options |
components.json |
🧩 shadcn/ui component configuration |
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open Pull Request
This project is licensed under the MIT License.