This repository contains an implementation of the Weather API Challenge from roadmap.sh. The goal is to provide a wrapper service for weather data that receives requests, consumes external weather APIs, and processes the results efficiently.
The unique highlight of this project is the use of NI LabVIEW and the Actor Framework to create a scalable, object-oriented, and modular architecture.
Klick auf das Vorschaubild, um die Anwendung in Aktion zu sehen:

The project is based on the Actor Model, which enables a clean separation of concerns:
- Modularity: Each service (e.g., the Weather Client) runs as an independent Actor.
- Fault Tolerance: Utilizes the built-in error-handling mechanisms of the Actor Framework to monitor processes.
- REST Integration: Connection to external weather providers via HTTP requests.
- JSON Parsing: Fast and reliable data processing of API responses.
To run or further develop this project, the following components are required:
- LabVIEW: Version 2020 or newer is recommended.
- JKI JSON Library: This library is mandatory for parsing weather data.
- The easiest way to install it is via the JKI VI Package Manager (VIPM)).
- Actor Framework: Included by default in LabVIEW.
The repository is organized according to best practices for LabVIEW projects:
Weather API.lvproj: The main LabVIEW project file.Weather Actor.lvclass: Contains the logic for retrieving and processing weather data.Messages: Contains specific Actor messages for communication between components.Documentation: (If available) Contains diagrams of the Actor hierarchy.
-
Clone the repository:
git clone https://github.com/HaraldBraun/weatherapi.git
-
Check dependencies: Ensure the JKI JSON library is installed via VIPM.
-
Open the project: Launch the Weather API.lvproj file in LabVIEW.
-
Start the Splash Screen VI: Locate the main entry point in the Project Explorer (usually Main.vi or the Root Actor) and run it.
The program requires a valid API key from a weather service provider (e.g., Visual Crossing or OpenWeatherMap). This key can be stored in the initialization parameters of the Weather Actor.
This project covers the following requirements of the challenge:
- Fetching weather data via an external API.
- Caching logic for API responses (optional/in progress).
- Console- or GUI-based output of results.
Developed by Harald Braun - LinkedIn.