PT

sd-wavys

distributed ocean monitoring system

source code ↗
C# ASP.NET Core Blazor RabbitMQ gRPC Protobuf TCP/Sockets SQLite

Context

Distributed Systems coursework, built in two phases: it simulates a network of ocean buoys (WAVY) that collect sensor data, send it to an AGGREGATOR that pre-processes it, which then forwards the data to a central SERVER that persists and analyses it. The first phase used point-to-point TCP sockets; the second evolved the communication between the WAVY and the AGGREGATOR into publish/subscribe over RabbitMQ (one topic per sensor) and introduced two independent gRPC microservices, for pre-processing and statistical analysis, while keeping the first phase's message format and ACK/NACK pattern to preserve compatibility. Besides the console interface, the SERVER exposes a REST API consumed by a Blazor web dashboard that lets you filter the received data by sensor, WAVY or time range, request new analyses, and export the filtered results as JSON.

Technical challenges

Screenshots