ph91.de
  • Home
  • About me
  • Categories
    • Software Development
    • New Zealand
    • Music
    • Tech & IT
    • Sports
    • Dublin
    • Junk
  • Contact
  • Disclaimer
ph91.de
ph91.de
  • Home
  • About me
  • Categories
    • Software Development
    • New Zealand
    • Music
    • Tech & IT
    • Sports
    • Dublin
    • Junk
  • Contact
  • Disclaimer
action adventure beach clouds
  • Software Development

Creating “Windwarner”

  • 2. January 2021

1. Motivation

The initial start of the project was at the beginning of 2019. I was looking for a sparing project which would help me getting hands on experience in Microservices, Spring Boot, Docker and Cloud. As usual, windsurfing proved to be a good “business” domain. The concept behind Windwarner is the following:

  • WindwarnerJobs
    • Get warned about good conditions (minimum windspeed and optionally minimum temperature) on your favorite windsurfing spots via email. You can chose from a list of data providers which can be used to obtain weather conditions.  You can configure arbitrary number of jobs for different spots. Each job is associated with a schedule (All Week, After-work, Weekends). You have the possibility to snooze jobs for specific time-periods e.g. when you are on holidays or not free on a specific day.
  • WindCalendarConfigs
    • The concept is similar to WindwarnerJobs but this time for weather forecasts. You can configure minimum weather demands for different spots at your favorite data provider. Windwarner will provide you your personal subscribable calendar endpoint which can be included in all major calendar applications. The format used is iCal which is the calendar standard. Your mail program will regularly check the endpoints which will keep you on top of all wind forecast stuff.

From the start, the architecture/technologies were kind of pre-selected as this project should also be a training on things which are useful for my professional life (no PHP). Moreover, the interface between the application and the user should be as small and as standard as possible which makes a lot of sense in my opinion. What use would it have to implement a custom smartphone/tablet applications/browser add-on with custom notifications?

The problem of informing a person about an event is solved: Messaging (Email)   

The problem of organising your appointments in the future is solved: Calendar (iCAL)

The chance that a device (seamlessly) supports email or calendars is much higher than the chance that you can install your custom app on it. The only custom part left is an easy user-interface which handles RBAC and CRUD on WindwarnerJobs and WindCalendarConfigs.

 

2. Architecture

Created with the C4 best practices in mind. Check the C4 diagram legend here.

System Diagram
Container Diagram
Deployment Diagram

3. Implementation

Stack for Microservices

  • Maven
  • Java 14
  • Spring Boot with several starters
  • Liquibase
  • Quartz Scheduler
  • Caffeine Cache Implementation
  • Springfox
  • biweekly for iCal
  • openAPI client generator
  • Google Jib
  • Testcontainers for MySQL-DB in integration tests

Stack for wordpress plugin

  • PHP
  • WordPress-API
  • Select2 for dynamic spot search
  • Firebase PHP-JWT
  • HTML, JavaScript and CSS

4. Operations

After initially trying out AWS (Fargate + RDS), I soon stopped that after the costs rose quickly and were just too much for a non-profit side-project. As I already host my blog, my personal Jenkins, Kanboard and some other stuff on Hetzner Private Cloud,  I registered another Hetzner instance for Windwarner.  The smallest instance is enough to run two Spring Boot Docker containers as you can see here.

docker stats

The prize of just 2,96€ per Month for a small server is unbeatable. Of course, you don’t have the fully managed experience which you’d have in AWS but the prize-tag of that is just unreasonable for a non-profit side project of that scope. As a comparison, the two small services only cost 0.68€ per day on AWS Fargate. Route53, VPC and other necessary helper services would increase it even more. 

Hetzner Dashboard

Necessary steps for operation:

  • Install docker and docker-compose
  • Installation of nginx reverse proxy with let’s encrypt
    Docker-compose for NGINX
  • Create DNS entries for subdomains which point to the static IP of the Hetzner Server
  • Enable auth for private AWS ECR repository in order to pull the Windwarner docker images
  • docker-compose up -d 😎

5. Demo

select2 for SpotSearch
WindCalendar integrated in iPhone
WindCalendar integrated in iPhone
Automatic Siri integration
Windwarner Wordpress Plugin
Windwarner Warning Email
Related Topics
  • microservices
  • spring boot
  • windwarner
Philipp

Previous Article
  • Allgemein
  • Software Development

Convert to degree to direction (the beautiful way)

  • 15. August 2020
  • Philipp
View Post
Next Article
  • Software Development

wpDataTables Hack: Default to current year

  • 23. January 2021
  • Philipp
View Post
436 comments

Comments navigation

Older comments
Newer comments
  1. EltonSpoib says:
    14. November 2025 at 02:58

    https://t.me/top_ratingcasino/4

  2. EltonSpoib says:
    14. November 2025 at 04:00

    https://t.me/top_ratingcasino/5

  3. EltonSpoib says:
    14. November 2025 at 05:56

    https://t.me/a_Topcasino/6

  4. DeweyLab says:
    14. November 2025 at 07:08

    https://telegra.ph/Top-kazino-11-14-2

  5. DeweyLab says:
    14. November 2025 at 09:23

    https://t.me/s/kazino_bez_filtrov

  6. DeweyLab says:
    14. November 2025 at 10:30

    https://t.me/kazino_bez_filtrov

  7. Adrianjit says:
    14. November 2025 at 13:07

    https://t.me/da_1xbet/9

  8. Adrianjit says:
    14. November 2025 at 14:34

    https://t.me/da_1xbet/7

  9. Adrianjit says:
    14. November 2025 at 15:56

    https://t.me/da_1xbet/14

  10. Adrianjit says:
    14. November 2025 at 17:15

    https://t.me/da_1xbet/11

  11. Adrianjit says:
    14. November 2025 at 20:59

    https://t.me/da_1xbet/10

  12. Adrianjit says:
    14. November 2025 at 22:03

    https://t.me/da_1xbet/15

  13. Adrianjit says:
    14. November 2025 at 23:02

    https://t.me/da_1xbet/3

  14. Adrianjit says:
    15. November 2025 at 07:08

    https://t.me/da_1xbet/5

  15. Adrianjit says:
    15. November 2025 at 07:56

    https://t.me/rq_1xbet/637

  16. Adrianjit says:
    15. November 2025 at 09:28

    https://t.me/rq_1xbet/792

  17. Adrianjit says:
    15. November 2025 at 11:02

    https://t.me/rq_1xbet/766

  18. Joshuamok says:
    15. November 2025 at 12:54

    https://t.me/s/rq_1xbet/1254

  19. Joshuamok says:
    15. November 2025 at 14:30

    https://t.me/s/rq_1xbet/1331

  20. Joshuamok says:
    15. November 2025 at 16:10

    https://t.me/s/rq_1xbet/583

  21. BluffMaster says:
    15. November 2025 at 16:20

    https://t.me/s/reyting_topcazino/23

  22. Joshuamok says:
    15. November 2025 at 17:52

    https://t.me/s/rq_1xbet/1467

  23. Joshuamok says:
    15. November 2025 at 19:30

    https://t.me/s/rq_1xbet/1464

  24. JamesJex says:
    15. November 2025 at 20:39

    https://t.me/Official_1xbet1/777

  25. JamesJex says:
    15. November 2025 at 22:01

    https://t.me/s/Official_1xbet1/564

  26. JamesJex says:
    15. November 2025 at 23:16

    https://t.me/s/Official_1xbet1/1270

  27. JamesJex says:
    16. November 2025 at 00:31

    https://t.me/Official_1xbet1/320

  28. JamesJex says:
    16. November 2025 at 01:49

    https://t.me/s/Official_1xbet1/840

  29. JamesJex says:
    16. November 2025 at 03:03

    https://t.me/Official_1xbet1/921

  30. JamesJex says:
    16. November 2025 at 04:14

    https://t.me/s/Official_1xbet1/820

  31. JamesJex says:
    16. November 2025 at 05:27

    https://t.me/s/Official_1xbet1/713

  32. ưu đãi 188v says:
    18. November 2025 at 08:23

    Điểm nổi bật của app xn88 không chỉ nằm ở giao diện thân thiện, tốc độ xử lý mượt mà trên cả điện thoại và máy tính, mà còn ở công nghệ bảo mật tiên tiến, giúp người dùng yên tâm sử dụng dịch vụ mọi lúc mọi nơi. Đặc biệt, deegarciaradio.com hoạt động hợp pháp dưới sự cấp phép của tổ chức PAGCOR – Philippines, đảm bảo yếu tố minh bạch và ổn định trong quá trình vận hành.

  33. DouglasHog says:
    19. November 2025 at 08:45

    https://t.me/kazino_s_licenziei/10

  34. xn88 app com says:
    19. November 2025 at 11:40

    xn88 lừa đảo Bạn có thể đánh bài theo level và điều chỉnh mức cược phù hợp như: 1K, 2K, 5K, 10K, 100K, 200K,… Chúng tôi cung cấp thêm chế độ trải nghiệm miễn phí cho bạn thoải mái làm quen. Hơn 150+ trò chơi cá cược đổi thưởng 3D đang được cập nhật liên tục mỗi ngày.

  35. kIDBmUVypktuKVDFmAAetiC says:
    19. November 2025 at 12:03

    EJJiFXKgXGnUKvpchywG

  36. Justinpah says:
    19. November 2025 at 12:22

    https://t.me/kazino_s_licenziei/10

  37. Justinpah says:
    19. November 2025 at 13:40

    https://t.me/Topcasino_licenziya/43

  38. Justinpah says:
    19. November 2025 at 14:51

    https://t.me/s/Topcasino_licenziya/55

  39. Justinpah says:
    19. November 2025 at 16:08

    https://t.me/Topcasino_licenziya/5

  40. Justinpah says:
    19. November 2025 at 17:22

    https://t.me/s/Topcasino_licenziya/40

  41. Javierbub says:
    19. November 2025 at 18:58

    https://t.me/top_online_kazino/6

  42. Charleswrics says:
    19. November 2025 at 20:18

    https://t.me/s/top_online_kazino/6

  43. Charleswrics says:
    19. November 2025 at 21:42

    https://t.me/s/top_online_kazino/8

  44. Charleswrics says:
    19. November 2025 at 22:51

    https://t.me/top_online_kazino/9

  45. Charleswrics says:
    20. November 2025 at 01:09

    https://t.me/top_online_kazino/5

  46. Charleswrics says:
    20. November 2025 at 04:29

    https://t.me/top_online_kazino/8

  47. Charleswrics says:
    20. November 2025 at 05:35

    https://t.me/top_online_kazino/6

  48. Charleswrics says:
    20. November 2025 at 06:49

    https://t.me/s/reyting_kasino

  49. Terryraf says:
    20. November 2025 at 09:08

    http://m.ww.g-ice.co.kr/member/login.html?noMemberOrder=&returnurl=https://t.me/s/Official_1xbet_1xbet/860

  50. Terryraf says:
    20. November 2025 at 10:49

    http://connectedshores.net/__media__/js/netsoltrademark.php?d=https://t.me/s/Official_1xbet_1xbet/132

Comments navigation

Older comments
Newer comments

Leave a Reply

Your email address will not be published. Required fields are marked *

ph91.de
Blog by Philipp Schreitmüller

Input your search keywords and press Enter.