This monorepo contains the frontend applications and shared packages for the McGill Rocket Team's ground station system. It provides real-time telemetry monitoring, command control, and data visualization capabilities integrated with YAMCS (Yet Another Mission Control System).
This is the main server which handles receiving, processing and sending telemetry. It's the middle man between data sources and the frontend ui. It runs through the YAMCS framework.
The application that users use to view live telemetry and issue commands. Comes with a configurable card ui and more.
Generate random data for development of the frontend. Without the simulator, we would have no way of testing the frontend with data.
- Purpose: Type-safe Effect-TS client for YAMCS
- Features:
- HTTP API client for YAMCS REST endpoints
- WebSocket client for real-time telemetry subscriptions
- Comprehensive schema definitions for YAMCS data structures
- Support for parameters, commands, links, and time events
- Purpose: Reactive state management using Effect Atom
- Features:
- Pre-configured atoms for YAMCS subscriptions (parameters, commands, links, time)
- Automatic WebSocket connection management
- Real-time data synchronization with React components
- Error handling and retry logic
Install the required tools:
or if you're on MacOS, install with Homebrew
brew install node pnpm java maven tilt
brew install --cask docker-desktopThen clone the repository and install the dependencies locally.
# Clone the repository
git clone https://github.com/McGillRocketTeam/ground-station
cd ground-station
# Install dependencies for all packages
pnpm install
# Build initial packages
pnpm buildTilt orchestrates the entire development environment, including all Docker services and applications. Ensure that Docker Desktop is running before you start Tilt.
# Start all services and applications
tilt upThis will start:
- Frontend dev server (
http://localhost:5173) - Simulator with YAMCS instance="ground_station"
- All Docker services:
- Backend (
ghcr.io/mcgillrocketteam/groundstation-backend-2026:main) - MQTT broker (Eclipse Mosquitto, port 1883)
- Map tile server (port 3001)
- Backend (
pnpm --filter @mrt/frontend devYAMCS_INSTANCE=ground_station pnpm --filter @mrt/simulator devpnpm turbo run check-types| Service | Image | Ports | Purpose |
|---|---|---|---|
| backend | ghcr.io/mcgillrocketteam/groundstation-backend-2026:main |
8090 (HTTP), 10015/UDP | Main backend API and telemetry ingestion |
| mqtt_broker | Eclipse Mosquitto | 1883 | Message queuing for communication |
| mbtileserver | Custom map server | 3001 (internal 8000) | Serves map tiles for ground station visualization |