Skip to content

TALOS User Stories

This document outlines user stories for prospective TALOS users across different personas and use cases.


Persona 1: Amateur Radio Operator / SatNOGS Contributor

Background

  • Name: Alex, callsign KD9XYZ
  • Experience: 5+ years in amateur radio, active SatNOGS network contributor
  • Equipment: RTL-SDR, Yaesu rotator, VHF/UHF yagi antennas
  • Goal: Track and receive telemetry from amateur satellites efficiently

User Stories

US-1.1: Station Registration

As an amateur radio operator with a SatNOGS ground station,
I want to register my existing station in TALOS by providing my SatNOGS station ID,
So that TALOS can automatically fetch my station's location, antenna configuration, and capabilities.

Acceptance Criteria: - [ ] Can enter SatNOGS station ID during registration - [ ] System auto-populates lat/lon/altitude from SatNOGS API - [ ] System displays station name and capabilities fetched from SatNOGS - [ ] Receive unique station_id and API key for agent setup

US-1.2: Real-Time Pass Prediction

As a station operator,
I want to see upcoming satellite passes for my station with accurate AOS/LOS times,
So that I can plan my observation schedule and ensure I'm available for high-priority passes.

Acceptance Criteria: - [ ] Dashboard shows next 24 hours of passes - [ ] Each pass shows: satellite name, AOS time, LOS time, max elevation, azimuth range - [ ] Passes sorted by time with high-elevation passes highlighted - [ ] Can filter passes by satellite or minimum elevation

US-1.3: Automated Antenna Tracking

As a station operator with a rotator,
I want TALOS to automatically point my antenna at the satellite during a pass,
So that I can receive optimal signal strength without manual intervention.

Acceptance Criteria: - [ ] Agent receives real-time az/el commands from Director - [ ] Rotator moves smoothly following satellite trajectory - [ ] Position updates at least 2Hz during active tracking - [ ] System handles meridian flips gracefully

US-1.4: Doppler Correction

As a station operator receiving narrowband signals,
I want TALOS to automatically apply Doppler correction to my radio,
So that I stay tuned to the correct frequency throughout the pass.

Acceptance Criteria: - [ ] System calculates Doppler shift based on satellite velocity - [ ] Radio frequency updated via rigctld at configurable interval - [ ] Supports uplink and downlink Doppler correction - [ ] Accurate to within 100 Hz at VHF frequencies


Persona 2: University CubeSat Team

Background

  • Name: Dr. Sarah Chen, CubeSat Mission Operations Lead
  • Organization: State University Aerospace Engineering Department
  • Equipment: 2 ground stations (campus + remote), educational SDR setup
  • Goal: Operate student-built CubeSat, train students on satellite operations

User Stories

US-2.1: Multi-Station Campaign

As a mission operations lead,
I want to create a tracking campaign that coordinates multiple ground stations,
So that we maximize contact opportunities with our CubeSat.

Acceptance Criteria: - [ ] Can create campaign with satellite NORAD ID - [ ] Assign multiple stations to same campaign - [ ] System automatically schedules non-conflicting observation windows - [ ] Dashboard shows aggregate coverage map

US-2.2: Organization & Team Management

As an organization owner,
I want to invite team members with different permission levels,
So that students can view data while only TAs and faculty can modify configurations.

Acceptance Criteria: - [ ] Three roles: viewer, operator, owner - [ ] Viewers can see dashboard, passes, telemetry - [ ] Operators can create campaigns and manage stations - [ ] Owners can invite/remove members and delete resources - [ ] Invite flow via email with magic link

US-2.3: Transmitter Selection

As a mission operator,
I want to select which transmitter/frequency to track for my satellite,
So that the system tunes to the correct downlink for telemetry reception.

Acceptance Criteria: - [ ] Campaign shows all active transmitters from SatNOGS DB - [ ] Can select primary transmitter for Doppler correction - [ ] System displays transmitter details: frequency, mode, baud rate - [ ] Can switch transmitters mid-campaign if needed

US-2.4: Public Mission Dashboard

As a university outreach coordinator,
I want a public webpage showing our satellite's current position,
So that students, donors, and the public can see our CubeSat orbiting Earth.

Acceptance Criteria: - [ ] /track?norad=<ID> page works without login - [ ] Shows satellite on world map with real-time position - [ ] Displays: name, altitude, velocity, lat/lon - [ ] Embeddable via iframe for university website - [ ] Mobile-responsive design


Persona 3: Space Agency / Commercial Operator

Background

  • Name: Marcus, Ground Segment Engineer
  • Organization: NewSpace startup operating LEO communication constellation
  • Equipment: Network of 5 professional ground stations across 3 continents
  • Goal: Reliable, automated satellite operations at scale

User Stories

US-3.1: Automated Scheduling

As a ground segment engineer,
I want TALOS to automatically schedule observation windows across my station network,
So that I maximize satellite contact time without manual scheduling.

Acceptance Criteria: - [ ] System predicts all passes for all stations - [ ] Auto-assigns passes to optimize coverage (no gaps, no conflicts) - [ ] Respects station maintenance windows - [ ] Generates schedule at least 48 hours in advance - [ ] API endpoint for schedule export (JSON/iCal)

US-3.2: Multi-Satellite Fleet Management

As a constellation operator,
I want to manage multiple satellites with different priorities,
So that critical satellites get more contact time.

Acceptance Criteria: - [ ] Support multiple active campaigns simultaneously - [ ] Campaign priority levels (1-10) - [ ] Higher priority campaigns preempt lower priority - [ ] Dashboard shows fleet overview with health status

US-3.3: API Integration

As a software engineer,
I want a RESTful API to integrate TALOS with our mission control system,
So that we can automate our operations workflow.

Acceptance Criteria: - [ ] Full CRUD API for organizations, stations, campaigns - [ ] API key authentication for machine-to-machine access - [ ] OpenAPI/Swagger documentation - [ ] Webhook support for pass start/end events - [ ] Rate limiting with clear error messages

US-3.4: Audit Logging

As a compliance officer,
I want a complete audit trail of all system actions,
So that we can demonstrate operational history for regulatory compliance.

Acceptance Criteria: - [ ] Log all API calls with timestamp, user, action, result - [ ] Log all station commands sent - [ ] Log campaign state changes - [ ] Logs retained for configurable period (default 90 days) - [ ] Export logs in standard format (JSON/CSV)


Persona 4: Satellite Enthusiast / Hobbyist

Background

  • Name: Jamie
  • Experience: Interested in space, no ham license yet
  • Equipment: None (just a web browser)
  • Goal: Track satellites visually, learn about orbital mechanics

User Stories

US-4.1: Browse Satellites Without Account

As a curious visitor,
I want to see where the ISS is right now without creating an account,
So that I can satisfy my curiosity immediately.

Acceptance Criteria: - [ ] /track page accessible without login - [ ] Default shows ISS (NORAD 25544) - [ ] Quick-select buttons for popular satellites (Hubble, Starlink, etc.) - [ ] Search by NORAD ID or satellite name

US-4.2: Visual Orbit Representation

As a space enthusiast,
I want to see the satellite's orbit path on a world map,
So that I can understand its trajectory and predict when it passes over my location.

Acceptance Criteria: - [ ] Map shows satellite current position with icon - [ ] Ground track shows past + future orbit path - [ ] Footprint circle shows current coverage area - [ ] Day/night terminator visible on map

US-4.3: Satellite Information

As a learner,
I want to see educational information about the satellite I'm tracking,
So that I can learn about its mission and specifications.

Acceptance Criteria: - [ ] Display satellite name and NORAD ID - [ ] Show current: latitude, longitude, altitude, velocity - [ ] Show TLE epoch age (data freshness) - [ ] Link to more info (Wikipedia, mission page)


Persona 5: Network Administrator / Self-Hoster

Background

  • Name: Pat
  • Experience: DevOps engineer, runs homelab
  • Equipment: Raspberry Pi cluster, self-hosted infrastructure
  • Goal: Run TALOS on own hardware for privacy and control

User Stories

US-5.1: Docker Deployment

As a self-hoster,
I want to deploy TALOS using Docker Compose,
So that I can run it on my own server with minimal configuration.

Acceptance Criteria: - [ ] Single docker-compose up brings up full stack - [ ] All services (core, director, broker, postgres) in one compose file - [ ] Environment variables for configuration - [ ] Persistent volumes for data - [ ] Works on arm64 (Raspberry Pi) and x86_64

US-5.2: TLS/HTTPS Configuration

As a security-conscious operator,
I want to configure HTTPS with my own certificates,
So that all traffic to my TALOS instance is encrypted.

Acceptance Criteria: - [ ] Documentation for reverse proxy setup (Caddy/Nginx/Traefik) - [ ] Example configs provided - [ ] WebSocket proxy configuration for MQTT dashboard - [ ] Health check endpoints work through proxy

US-5.3: Backup & Restore

As a system administrator,
I want to backup and restore my TALOS database,
So that I can recover from failures and migrate between servers.

Acceptance Criteria: - [ ] Documentation for PostgreSQL backup - [ ] Backup includes: users, organizations, stations, campaigns - [ ] Restore procedure documented - [ ] Optional: automated backup script


Cross-Cutting User Stories

US-X.1: Mobile-Responsive Dashboard

As any user accessing TALOS from a mobile device,
I want the dashboard to work well on small screens,
So that I can check satellite status from my phone.

Acceptance Criteria: - [ ] All pages responsive down to 375px width - [ ] Touch-friendly controls - [ ] Map remains usable on mobile - [ ] Login flow works on mobile browsers

US-X.2: Real-Time Updates

As any logged-in user viewing the dashboard,
I want satellite positions and station status to update in real-time,
So that I see current information without refreshing the page.

Acceptance Criteria: - [ ] Dashboard connects to MQTT broker via WebSocket - [ ] Satellite position updates every 0.5 seconds - [ ] Station status updates immediately on change - [ ] Graceful reconnection on connection loss

US-X.3: Dark Mode

As a user who prefers dark interfaces (or operates at night),
I want the dashboard to have a dark theme,
So that it's comfortable to use in low-light conditions.

Acceptance Criteria: - [ ] Default theme is dark (space-themed) - [ ] Sufficient contrast for accessibility - [ ] Map uses dark tiles - [ ] No bright flashes on page load


Priority Matrix

Story ID Persona Priority Status
US-1.1 Amateur P0 ✅ Implemented
US-1.2 Amateur P0 ✅ Implemented
US-1.3 Amateur P0 ✅ Implemented
US-1.4 Amateur P0 ✅ Implemented
US-2.1 University P0 ✅ Implemented
US-2.2 University P0 ✅ Implemented
US-2.3 University P0 ✅ Implemented
US-2.4 University P0 ✅ Implemented
US-3.1 Commercial P1 🔄 Partial
US-3.2 Commercial P1 🔄 Partial
US-3.3 Commercial P2 📋 Planned
US-3.4 Commercial P2 📋 Planned
US-4.1 Enthusiast P0 ✅ Implemented
US-4.2 Enthusiast P0 ✅ Implemented
US-4.3 Enthusiast P0 ✅ Implemented
US-5.1 Self-Hoster P0 ✅ Implemented
US-5.2 Self-Hoster P1 📋 Planned
US-5.3 Self-Hoster P2 📋 Planned
US-X.1 All P1 🔄 Partial
US-X.2 All P0 ✅ Implemented
US-X.3 All P0 ✅ Implemented

Legend: - P0 = Must have (MVP) - P1 = Should have (v1.0) - P2 = Nice to have (future) - ✅ = Implemented - 🔄 = Partial implementation - 📋 = Planned


Revision History

Date Author Changes
2026-04-02 Mitsaras (AI) Initial version with 5 personas and 21 user stories