Skip to content

Repository files navigation

visualization-server

Backend for the visualization platform: accounts, chart data, and sensor ingestion behind a single gateway.

Sibling repositories: visualization-view (frontend), visualization-device (sensor firmware).

Services

Service Port Purpose
registry 7000 Service discovery
gateway 8080 HTTP entrypoint, proxies to the services below
user 8081 / 8091 Accounts, OAuth2
content 8083 Chart data
sensors 8084 Device registration and readings

Build

Requires vcpkg and a Clang/Ninja toolchain.

export VCPKG_ROOT=/path/to/vcpkg
cmake --preset linux-clang      # or windows-clang-cl
cmake --build --preset linux-clang

Run

./build/linux-clang/services/registry/registry_server 7000
VSCPP_JWT_SECRET=change-me ./build/linux-clang/services/user/user_server 8081 8091 127.0.0.1 7000 user.db
./build/linux-clang/services/content/content_server 8083 127.0.0.1 7000 content.db
./build/linux-clang/services/sensors/sensors_server 8084 127.0.0.1 7000 sensors.db
./build/linux-clang/services/gateway/gateway_server 8080 127.0.0.1 7000

Register the frontend's OAuth client once:

curl -X POST http://127.0.0.1:8080/api/user/clients \
  -H "Content-Type: application/json" \
  -d '{"id":"dashboard-web","public":true,"grants":["password","refresh_token"]}'

content seeds two demo charts into a fresh database on first run.

Test

ctest --preset linux-clang --output-on-failure

Layout

libs/       shared libraries (runtime, http, rpc, discovery, db, auth, ...)
services/   registry, gateway, user, content, sensors
tests/      one suite per lib/service

Contributors

Languages