A modular suite for hub management, telemetry, and a modern web GUI for Hyperloop team operations. This repository contains the cloud services, Raspberry Pi hub server, web client, and related utilities used to run, test, and develop the system.
Quick links
- Cloud API: cloud-services
- Hub agent & server: rpi-hub-server
- Browser UI: web-client
- Fallback relay: wifi-fallback-relay
Anyone is welcome to view the live GUI at: https://gui.cornellhyperloop.com/
Repository layout
cloud-services/— FastAPI backend for authentication, websockets, hub coordination, and telemetry storage.rpi-hub-server/— Edge service that runs on Raspberry Pi devices: serial/USB management, hardware command tasks, and a lightweight FastAPI/WS endpoint.web-client/— React + TypeScript single-page app (Vite) for live telemetry, device control, and charting.wifi-fallback-relay/— Small Python-based relay service for network fallback scenarios.
The system is split into three primary tiers:
- Cloud / API: central FastAPI application exposing REST endpoints and WebSocket hubs for realtime telemetry and command routing.
- Edge / Hub: Raspberry Pi agent that manages local serial devices, performs device tasks, and streams telemetry back to the cloud.
- Client: A TypeScript React app (Vite) that connects to the cloud WebSocket endpoints for realtime dashboards and control.
A short video of the GUI being used to operate our team's minipod is attached here.
- Backend:
FastAPI(>=0.115.0) +uvicornfor ASGI serving. WebSocket hubs use thewebsocketspackage and integrate with Pydantic models for typed messages. - Auth: JWT-based tokens (see
cloud-services/src/api/auth.py) with password hashing viapasslib[bcrypt]. - Data models:
pydantic/pydantic-settingsfor config and runtime validation. - Edge:
pyserialfor hardware serial connections,psutilfor health metrics, configurable tasks and reconnect logic inrpi-hub-server/src/tasks/. - Frontend: React 19 + TypeScript, built with Vite; key libs include
rechartsfor charts andzustandfor state.
Prerequisites: Python 3.11+, Node 18+ (or matching versions used by your environment), Git.
Backend (example)
- Create and activate a Python virtual environment in
cloud-services:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt- Run the cloud API locally (development):
cd cloud-services
set ENV_FILE=.env.development
python -m uvicorn src.main:app --reload --host 0.0.0.0 --port 8000Frontend
cd web-client
npm install
npm run devEdge / RPi
- Install dependencies on the target device or in a venv under
rpi-hub-serverand configureconfig/config.yamlas needed. - Start the hub agent with:
python -m src.main(or use the provided systemd units insystemd/for production). - (Optional) If no physical Raspberry Pis are avaliable there is a
mock_hub_simulator.pyscript at /tests
- Python:
pytestandpytest-asyncioare used across services. See tests in each service folder (e.g.,cloud-services/testsandrpi-hub-server/tests). - Frontend: TypeScript type checks and ESLint are enforced in
web-client(seepackage.jsonscripts).
Project visuals and diagrams used above live in res/readme/:
This project is licensed under the MIT License — see LICENSE.md for details.




