I’m building a mountain weather at the moment. When the weather is good, I like to spend my weekends in the mountains. I wanted to create an application that can retrieve and display the best weather forecast for the main mountain ranges in Ireland. I outlined some learning outcomes and intend to integrate it into my home lab.

App

To broaden my knowledge, I decided to build the front and the back end in separate containers. Docker is a tool I haven’t used in a professional environment but it is a technology I am eager to learn. Here are some more details of the construction:

Backend

The backend of the application is written in C++. At the moment there are three classes of note:

  • The mountainmapping class: loads constant mountain values into a structure and also creates a blank forecast structure to be updated.
  • The weather forecast class:
    • interfaces with the Irish Met offices Harmonie weather model’s API.
    • Uses coordinates from the mountainmapping class, gets weather forecast for specific locations.
  • Clock class
    • Formats time to be suitable for weather API requests.

Frontend

This is still in the UI:UX design phase.

Database storage (Maybe)

I want to become more familiar with SQL. I don’t have a large amount of storage to create a large database of weather data but I’d be interested in integrating some kind of rolling weather forecast data comparator.

Learning outcomes

RestfulAPI

I can’t say I’ve worked with a restful API but I think this statement alone is a good enough reason to read up on the structure and try an integrate it into this project.

DevOps

I would like to integrate this into my home lab. I think it would be a good project to become familiar with containerized processes.

Databases

SQL is something I want to learn. I don’t think a database is necessary in the current scope of the project. There could be an interesting spin-off project to analyse forecast accuracy relative to the time between forecast and date. Either way, I currently don’t have enough hardware memory for a large database.

Posted in

Leave a comment