Skip to content

This is a web application allowing users to request a weather forecast either for their current location (locates city by their IP address) or by indicating any city.

Notifications You must be signed in to change notification settings

Rahman2001/weatherApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

weatherApp

Framework : Spring Boot

Description

This is a web application allowing users to request a weather forecast either for their current location (locates city by their IP address) or by indicating any city. The motivation in this project is to learn builing multimodular application that can interact with each other using Retrofit.

Challenges faced :

  • Learning new technologies, their benefits and implementations
  • Dividing responsibilities to each module and their implementations
  • Making an application asynchronous and event driven
  • Making database to automatically self - update/insert data to keep weather data fresh
  • Doing appropriate tests (integration test) on application components

Solutions used for each challenge respectively:

  • Reading official documentations, analysing other developers' solutions and implemenations
  • Getting familiar with some design patterns for 'Clean Code' and understanding logic behind them
  • Analysing other developers' solution and implementing CompletableFuture API
  • Using SchedulingConfigurer interface to dynamically schedule database operations in which it invokes internal HTTP clients to get weather data from external source after which database updates or/and insertes those data.
  • Could do integration tests by understanding the concept of this test

Technologies used : Retrofit, OkHttp client, Flyway Migration Tool

Modules of application :

  • Web Module
  • DataLogic Module


Web Module

Description

This module is responsible for UI and it is for user interactions only. Through this module, users can view weather forecasts and make a request for a particular city's weather forecast. Although the UI is not implemented yet, it is possible to make request through Postman.

Link to module : See Web Module



DataLogic Module

Description

This module is responsible for all the operations with data :

  • Data requesting from external source
  • JSON processing (deleting, inserting, time zone converting, etc.)
  • Database persistency (updating, inserting, deleting)

Through this module, users get weather forecasts. This module uses Web module to accept user requests and returns data in JSON format back to Web module where users can see weather forecasts.

Link to module : See DataLogic Module



Open Source API used

About

This is a web application allowing users to request a weather forecast either for their current location (locates city by their IP address) or by indicating any city.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages