mohitkh7 / MauSUM

Application which shows weather of given location based on data aggregated from multiple sources.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Problem Statement

FULLStack OpenTheme 10

Amalgamation of Weather Forecast from multiple free public data streams & APIs (Yahoo weather, Accu-weather, ForecastIo, Weather Underground, Aeris-weather, Open-weather Map etc.& many more. A more detailed list can be furnished later) & amalgamate these through some statistical averaging to produce a single integrated weather forecast stream for a particular geo location within a certain Km radius. We would like to provide this information on our App & also publish an API if​ possible.

What I have built

MauSUM - a weather application which aggregrates data from multiple sources and gives most accurate weather data. It hits various external apis from a backend in Python/Flask, aggregates there data and generate final result as consumable REST API. Frontend built in Angular 7 access the API and displays result in intuitive manner.

Technologies Used

  • Python Flask

    • Hit various API through HTTP, requests module
    • Independent API
  • Angular 7

    • Async fetches data using obervable subscriber pattern
    • process & modification of data in UI
  • HTML/CSS/Bootstrap

    • simple yet powerful
  • APIs Used

    • OpenWeatherMap
    • DarkSky
    • SimpleMaps : to get indian city coordinates

Challenges

  • Breaking down problem and decide MVP Feature (mentors helped to figure out MUST HAVE Feature)
  • Variation in format of different data sources (created custom weather class and SI Unit convertion function)

Future Modification

  • Caching of API responses
  • Integrating Google Maps Autocomplete place API
  • Weather data from more sources
  • API Authentication & Throttling
  • Error handling, logging & docs

About

Application which shows weather of given location based on data aggregated from multiple sources.


Languages

Language:TypeScript 33.8%Language:CSS 26.3%Language:Python 17.5%Language:HTML 17.0%Language:JavaScript 5.4%