Internship project · ProAzure
Dual-Interface Weather Forecasting Platform
A weather platform with both a Flask web app and a Tkinter desktop GUI over two weather APIs, with a caching layer that removes redundant third-party calls.
The problem
Every lookup hitting a third-party weather API costs latency and request quota, and two separate interfaces double the places the same logic can drift apart.
What I built
- A Flask web application and a Tkinter desktop GUI over the same core.
- Integration with the OpenWeatherMap and WeatherAPI REST APIs.
- An API response caching layer that eliminates redundant third-party calls.
- Parsing and normalisation of JSON responses into live temperature, humidity and wind-speed data.
- Matplotlib visualisations of historical trends.
My engineering contribution
- Engineered the platform during my Python full-stack traineeship at ProAzure Software Solutions.
- Built structured exception handling and input validation across all modules.
- Kept the codebase modular and PEP 8-compliant, with Git version control and peer code reviews.
Architecture and workflow
A Flask web app and a Tkinter desktop GUI share the same request logic.
Technical decisions
- Cache API responses so repeated lookups cost nothing upstream.
- One core, two interfaces — the web app and desktop GUI call the same modules.
- Normalise both providers into a single data shape before anything is displayed.
Outcomes
- As reported in my resume for this internship project: the caching layer improved average response time by approximately 30%.
- As reported in my resume: 99% uptime was sustained through the project's QA cycles. These are project and QA-context figures, not audited production guarantees.