A responsive and interactive Weather App that fetches real-time data from WeatherAPI through a custom Node.js/Express backend. The frontend dynamically adapts its background and particle effects based on live weather conditions, creating an immersive user experience.
- 🎨 Dynamic particle backgrounds (rain, snow, clouds, sun, stars at night)
- 🌈 Smooth gradient transitions based on weather and time of day
- 📡 Secure backend proxy (hides API key with Express + dotenv)
- ⚡ Real-time weather updates via WeatherAPI
- 📱 Responsive design for desktop & mobile
- 🔄 Separation of concerns → frontend + backend architecture
- 🛡️ CORS enabled for safe frontend-backend communication
WeatherAPI/ │── backend/ # Node.js + Express backend (API proxy) │ ├── server.js # Backend server │ ├── package.json # Dependencies & scripts │ └── .env # API keys (not committed) │ │── frontend/ # HTML, CSS, JS frontend │ ├── index.html # Main UI │ ├── styles.css # Styling + responsiveness │ └── app.js # Weather logic + background effects
git clone https://github.com/Arsh-pixel-cmd/Weather-Visualizer.git
cd Weather-Visualizercd backend
npm installCreate a .env file inside backend/:
npm start
# Backend runs at → http://localhost:8080In a separate terminal:
cd frontend
npx live-server
# Frontend runs at → something like http://127.0.0.1:63813- Start backend →
npm startin/backend - Start frontend →
npx live-serverin/frontend - Open frontend in browser → type a city → enjoy dynamic weather visualization 🌦️
- Use Express.js as an API proxy to hide API keys
- Securely store secrets with dotenv
- Create dynamic particle animations with HTML Canvas
- Handle real-time weather data & update UI with JS
- Build responsive design using flexbox + media queries
Arsh Mishra
Aspiring Software Engineer | Frontend & Full-Stack Developer
- Fork the project
- Create a feature branch (
git checkout -b feature/newFeature) - Commit changes (
git commit -m "Added new feature") - Push & Open a PR
Licensed under the MIT License — feel free to use & modify.