A modern web application for satellite management and control, built with the T3 stack (Next.js, TypeScript, Tailwind CSS, tRPC).
- Dashboard: Overview of all satellites with real-time status monitoring
- Command Center: Send commands to satellites with predefined and custom options
- Telemetry Monitoring: Real-time telemetry data visualization with charts
- Satellite Tracking: Interactive map showing satellite positions and orbital paths
- Settings: Configure API endpoints and application preferences
- Frontend: Next.js 14, React 18, TypeScript
- Styling: Tailwind CSS with custom dark theme
- API: tRPC for type-safe API calls
- Charts: Chart.js with react-chartjs-2
- Maps: Leaflet with react-leaflet
- State Management: React Query (TanStack Query)
- Node.js 18+
- npm or pnpm
- Running Rust API backend (see API documentation)
-
Clone the repository
-
Install dependencies:
npm install # or pnpm install -
Copy environment variables:
cp .env.example .env.local
-
Configure your API base URL in
.env.local:API_BASE_URL=http://localhost:8080 NEXT_PUBLIC_API_BASE_URL=http://localhost:8080 -
Start the development server:
npm run dev # or pnpm dev -
Open http://localhost:3000 in your browser
The application integrates with a Rust-based satellite management API. The API provides:
/api/control/command- Send commands to satellites/api/telemetry/{satellite}/history- Get historical telemetry data/api/telemetry/{satellite}/latest- Get latest telemetry data/config- Get system configuration
The application is designed to be compatible with desktop app frameworks:
- Tauri: Recommended for Rust integration
- Electron: Alternative option for broader compatibility
src/
├── components/ # Reusable UI components
├── lib/ # Utility libraries and API client
├── pages/ # Next.js pages and API routes
├── server/ # tRPC server configuration
├── styles/ # Global styles and Tailwind config
├── types/ # TypeScript type definitions
└── utils/ # Utility functions and tRPC client
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run type-check- Run TypeScript compiler
Create a .env.local file with:
API_BASE_URL=http://localhost:8080
NEXT_PUBLIC_API_BASE_URL=http://localhost:8080
NODE_ENV=development- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
This project is licensed under the MIT License.