
Key Features & Highlights
Technologies & Architecture
Weather Analytics Application
About Project
A full-stack weather analytics application built to collect, process, and visualize real-time weather data for 30 global cities using OpenWeatherMap API.
The application combines a Next.js frontend with a FastAPI backend and provides secure authentication, ranked weather analytics, detailed city-level metrics, and a scientific Comfort Index Score based on temperature, humidity, wind speed, cloudiness, and visibility. It also uses an in-memory caching system and background refresh process to improve performance and reduce unnecessary API requests.
Application Development
I built this project as a full-stack weather analytics application using Next.js and FastAPI. I integrated the OpenWeatherMap API to collect real-time weather data for 30 global cities and developed backend services to process and serve the data through REST APIs. The frontend provides a responsive dashboard for viewing city rankings, weather metrics, comfort ratings, and detailed city information.
A key part of the project is the Comfort Index Engine, which calculates a 0–100 Comfort Index Score using five weighted weather factors: temperature (40%), humidity (25%), wind speed (15%), cloudiness (15%), and visibility (5%). Each factor is evaluated based on defined comfort ranges, and the weighted results are combined into a final score classified as Excellent, Good, Fair, or Poor. These scores are then used to rank the 30 cities and help users quickly understand overall weather comfort.
I also implemented Auth0 authentication with MFA and RS256 JWT validation to secure communication between the frontend and backend. To improve performance and reduce unnecessary OpenWeatherMap API requests, I designed an in-memory caching system with TTL-based expiration and a background refresh worker that automatically updates weather data every few minutes.
What I Learned
Through this project, I gained practical experience in full-stack development, REST API integration, authentication and authorization, JWT security, asynchronous backend processing, caching strategies, and responsive dashboard development. I also learned how to design a backend data-processing service, work with external APIs efficiently, write automated tests with Pytest, and transform raw weather data into meaningful analytical metrics such as a weighted Comfort Index Score.