WeatherFlow is a modern, responsive weather dashboard developed using Django, HTML, CSS, and JavaScript. It provides real-time weather information, hourly and weekly forecasts, air quality insights, and interactive visualizations by integrating the Open-Meteo API.
The application focuses on delivering an intuitive user experience with dynamic weather animations, theme customization, temperature conversion, and detailed atmospheric information.
WeatherFlow enables users to search for any city or district and view detailed weather conditions along with environmental data.
The application integrates multiple external APIs to fetch accurate weather information and presents the data through an interactive, responsive dashboard.
- Search weather by city or district
- Real-time weather conditions
- Current temperature and weather status
- Humidity details
- Wind speed and direction
- Atmospheric pressure
- Visibility information
- Sunrise and sunset timings
- 24-hour hourly forecast
- 7-day weather forecast
- Temperature trend visualization
- Weather condition predictions
- Air Quality Index (AQI)
- UV Index monitoring
- Environmental insights
- Atmospheric condition analysis
- Responsive modern dashboard design
- Light and dark theme support
- Celsius/Fahrenheit temperature conversion
- Dynamic weather animations
- Weather radar animation
- Interactive globe visualization
- Python
- Django 5
- HTML5
- CSS3
- JavaScript (ES6)
- Canvas API
Used for:
- Current weather conditions
- Hourly weather forecast
- Daily weather forecast
Used for:
- City and district search
- Location coordinate mapping
Used for:
- AQI information
- Environmental measurements
WeatherFlow-Django/
│
├── weather/
│ ├── views.py # Weather application logic
│ ├── urls.py # Application routes
│ └── services.py # External API integration
│
├── weatherapp/
│ ├── settings.py # Django configuration
│ └── urls.py # Main URL configuration
│
├── templates/
│ └── weather/
│ └── dashboard.html # Dashboard UI
│
├── static/
│ ├── css/ # Stylesheets
│ ├── js/ # JavaScript files
│ └── images/ # Static assets
│
├── requirements.txt
├── manage.py
├── README.md
└── .gitignore
git clone https://github.com/your-username/WeatherFlow-Django.gitcd WeatherFlow-Djangopython -m venv venvActivate the environment:
venv\Scripts\activatesource venv/bin/activatepip install -r requirements.txtpython manage.py migratepython manage.py runserverOpen the application:
http://127.0.0.1:8000/
| Endpoint | Description |
|---|---|
/ |
Weather dashboard |
/api/weather/?city=<city> |
Fetch weather information |
Example request:
GET /api/weather/?city=Mumbai
Example response:
{
"temperature": 28,
"humidity": 75,
"wind_speed": 12,
"condition": "Cloudy"
}WeatherFlow supports thousands of locations worldwide.
Examples:
- Pune, India
- Mumbai, India
- Delhi, India
- Bangalore, India
- London, United Kingdom
- Tokyo, Japan
- New York, USA
- Dubai, UAE
Planned improvements:
- Current location weather detection
- Favorite cities management
- Weather alert notifications
- Interactive weather maps
- Historical weather analytics
- Multi-language support
- Progressive Web App (PWA)
Through this project, I gained practical experience in:
- Django backend development
- REST API integration
- External API consumption
- JavaScript asynchronous programming
- Dynamic UI rendering
- Responsive web design
- Data visualization using Canvas API
Harshali Kulkarni
This project is licensed under the MIT License.
You are free to use, modify, and distribute this project with proper attribution.