This is simple weather aggregation service. It was test task, that I wrote long time ago. It's main goal is collecting weather observations from different sources. Additional module "web" can show last gathered info in web UI, but it not necessary - core can work without it.
In project was used:
- Spring IoC.
- JPA over Hibernate.
- Java Bean validation.
- Quartz.
- PostgreSQL (migrations wrote in plain SQL).
- Flyway used for migrations as experimental lightweight alternative to Liquibase.
- UI build with Spring MVC and Bootstrap.
- Aggregating weather observations from different sources (HAM Weather and OpenWeatherMap at current time).
- Keep historical data.
- Show last observations in Web UI.
- Modularity. Core can run in console and aggregate data, web UI totally optional. Sources of data can be simple added.
- Setup PostgreSql 9.
- Create user with credentials "weatherservice"/"weatherservice" in it.
- Create database "weatherservice" with owner "weatherservice". Application will automatically create database.
- Build war and deploy it in Tomcat 7.
- Setup PostgreSql 9.
- Create user with credentials "weatherservice"/"weatherservice" in it.
- Create database "weatherservice" with owner "weatherservice". Application will automatically create database.
- Run Main in module "core" from IDE.
- Setup PostgreSql 9.
- Create user with credentials "weatherservice-test"/"weatherservice-test" in it.
- Create database "weatherservice-test" with owner "weatherservice-test".
- Run JUnit tests.