diff --git a/.gitignore b/.gitignore index 902c831..a1bd4d4 100644 --- a/.gitignore +++ b/.gitignore @@ -3,10 +3,6 @@ skyview build/ dist/ -# Debian package build artifacts -debian/usr/bin/skyview -debian/usr/bin/beast-dump - # Configuration config.json diff --git a/Makefile b/Makefile index 2f71042..29cb180 100644 --- a/Makefile +++ b/Makefile @@ -1,26 +1,13 @@ -PACKAGE_NAME=skyview +BINARY_NAME=skyview BUILD_DIR=build VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev") -LDFLAGS=-w -s -X main.version=$(VERSION) -.PHONY: build build-all clean run dev test lint deb deb-clean install-deps +.PHONY: build clean run dev test lint deb deb-clean install-deps -# Build main skyview binary build: - @echo "Building skyview..." + @echo "Building $(BINARY_NAME)..." @mkdir -p $(BUILD_DIR) - go build -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/skyview ./cmd/skyview - -# Build beast-dump utility binary -build-beast-dump: - @echo "Building beast-dump..." - @mkdir -p $(BUILD_DIR) - go build -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/beast-dump ./cmd/beast-dump - -# Build all binaries -build-all: build build-beast-dump - @echo "Built all binaries successfully:" - @ls -la $(BUILD_DIR)/ + go build -ldflags="-w -s -X main.version=$(VERSION)" -o $(BUILD_DIR)/$(BINARY_NAME) ./cmd/skyview clean: @echo "Cleaning..." diff --git a/README.md b/README.md index 2a3602b..645e56c 100644 --- a/README.md +++ b/README.md @@ -17,14 +17,13 @@ A high-performance, multi-source ADS-B aircraft tracking application that connec - **Multi-view Dashboard**: Map, Table, Statistics, Coverage, and 3D Radar views ### Professional Visualization -- **Signal Analysis**: Signal strength visualization and coverage analysis +- **Signal Analysis**: Signal strength heatmaps and coverage analysis - **Range Circles**: Configurable range rings for each receiver - **Flight Trails**: Historical aircraft movement tracking -- **3D Radar View**: Three.js-powered 3D visualization -- **Statistics Dashboard**: Aircraft count timeline *(additional charts under construction)* š§ +- **3D Radar View**: Three.js-powered 3D visualization (optional) +- **Statistics Dashboard**: Live charts and metrics - **Smart Origin**: Auto-calculated map center based on receiver locations - **Map Controls**: Center on aircraft, reset to origin, toggle overlays -- **Signal Heatmaps**: Coverage heatmap visualization *(under construction)* š§ ### Aircraft Data - **Complete Mode S Decoding**: Position, velocity, altitude, heading @@ -52,7 +51,7 @@ A high-performance, multi-source ADS-B aircraft tracking application that connec ```bash # Install -sudo dpkg -i skyview_0.0.2_amd64.deb +sudo dpkg -i skyview_2.0.0_amd64.deb # Configure sudo nano /etc/skyview/config.json @@ -120,18 +119,9 @@ Access the web interface at `http://localhost:8080` ### Views Available: - **Map View**: Interactive aircraft tracking with receiver locations - **Table View**: Sortable aircraft data with multi-source information -- **Statistics**: Aircraft count timeline *(additional charts planned)* š§ -- **Coverage**: Signal strength analysis *(heatmaps under construction)* š§ -- **3D Radar**: Three-dimensional aircraft visualization *(controls under construction)* š§ - -### š§ Features Under Construction -Some advanced features are currently in development: -- **Message Rate Charts**: Per-source message rate visualization -- **Signal Strength Distribution**: Signal strength histogram analysis -- **Altitude Distribution**: Aircraft altitude distribution charts -- **Interactive Heatmaps**: Leaflet.heat-based coverage heatmaps -- **3D Radar Controls**: Interactive 3D view manipulation (reset, auto-rotate, range) -- **Enhanced Error Notifications**: User-friendly toast notifications for issues +- **Statistics**: Live metrics and historical charts +- **Coverage**: Signal strength analysis and heatmaps +- **3D Radar**: Three-dimensional aircraft visualization ## š§ Building @@ -203,7 +193,7 @@ make check # Run all checks ### Systemd Service (Debian/Ubuntu) ```bash # Install package -sudo dpkg -i skyview_0.0.2_amd64.deb +sudo dpkg -i skyview_2.0.0_amd64.deb # Configure sources in /etc/skyview/config.json # Start service @@ -259,9 +249,9 @@ MIT License - see [LICENSE](LICENSE) file for details. ## š Support -- [Issues](https://kode.naiv.no/olemd/skyview/issues) -- [Documentation](https://kode.naiv.no/olemd/skyview/wiki) -- [Configuration Examples](https://kode.naiv.no/olemd/skyview/src/branch/main/examples) +- [GitHub Issues](https://github.com/skyview/skyview/issues) +- [Documentation](https://github.com/skyview/skyview/wiki) +- [Configuration Examples](https://github.com/skyview/skyview/tree/main/examples) --- diff --git a/assets/assets.go b/assets/assets.go index 54e1c4a..3cef7d0 100644 --- a/assets/assets.go +++ b/assets/assets.go @@ -6,7 +6,7 @@ // - index.html: Main web interface with aircraft tracking map // - css/style.css: Styling for the web interface // - js/app.js: JavaScript client for WebSocket communication and map rendering -// - icons/*.svg: Type-specific SVG icons for aircraft markers +// - aircraft-icon.svg: SVG icon for aircraft markers // - favicon.ico: Browser icon // // The embedded filesystem is used by the HTTP server to serve static content @@ -16,11 +16,11 @@ package assets import "embed" // Static contains all embedded static web assets from the static/ directory. -// +// // Files are embedded at build time and can be accessed using the standard // fs.FS interface. Path names within the embedded filesystem preserve the // directory structure, so files are accessed as: -// - "static/index.html" +// - "static/index.html" // - "static/css/style.css" // - "static/js/app.js" // - etc. diff --git a/assets/static/aircraft-icon.svg b/assets/static/aircraft-icon.svg new file mode 100644 index 0000000..f2489d3 --- /dev/null +++ b/assets/static/aircraft-icon.svg @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/assets/static/css/style.css b/assets/static/css/style.css index b34a241..26ce441 100644 --- a/assets/static/css/style.css +++ b/assets/static/css/style.css @@ -195,8 +195,8 @@ body { .display-options { position: absolute; - top: 320px; - right: 10px; + top: 10px; + left: 10px; z-index: 1000; background: rgba(45, 45, 45, 0.95); border: 1px solid #404040; @@ -417,115 +417,6 @@ body { color: #ffffff !important; } -/* Under Construction Styles */ -.under-construction { - color: #ff8c00; - font-size: 0.8em; - font-weight: normal; - margin-left: 8px; -} - -.construction-notice { - background: rgba(255, 140, 0, 0.1); - border: 1px solid #ff8c00; - border-radius: 4px; - padding: 8px; - margin: 8px 0; - font-size: 0.9em; - color: #ff8c00; - text-align: center; -} - -/* Toast Notifications */ -.toast-notification { - position: fixed; - top: 20px; - right: 20px; - background: rgba(40, 40, 40, 0.95); - border: 1px solid #555; - border-radius: 6px; - padding: 12px 20px; - color: #ffffff; - font-size: 0.9em; - max-width: 300px; - z-index: 10000; - transform: translateX(320px); - transition: transform 0.3s ease-in-out; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); -} - -.toast-notification.error { - border-color: #ff8c00; - background: rgba(255, 140, 0, 0.1); - color: #ff8c00; -} - -.toast-notification.show { - transform: translateX(0); -} - -/* Version Info */ -.version-info { - font-size: 0.6em; - color: #888; - font-weight: normal; - margin-left: 8px; -} - -/* Repository Link */ -.repo-link { - color: #888; - text-decoration: none; - font-size: 0.7em; - margin-left: 6px; - opacity: 0.6; - transition: opacity 0.2s ease, color 0.2s ease; -} - -.repo-link:hover { - color: #4a9eff; - opacity: 1; - text-decoration: none; -} - -/* Collapsible Sections */ -.collapsible-header { - cursor: pointer; - user-select: none; - display: flex; - justify-content: space-between; - align-items: center; - margin: 0 0 8px 0; - padding: 4px 0; - border-bottom: 1px solid #444; -} - -.collapsible-header:hover { - color: #4a9eff; -} - -.collapse-indicator { - font-size: 0.8em; - transition: transform 0.2s ease; - color: #888; -} - -.collapsible-header.collapsed .collapse-indicator { - transform: rotate(-90deg); -} - -.collapsible-content { - overflow: hidden; - transition: max-height 0.3s ease; - max-height: 200px; -} - -.collapsible-content.collapsed { - max-height: 0; - margin: 0; - padding: 0; -} - .leaflet-popup-tip { background: #2d2d2d !important; } diff --git a/assets/static/index.html b/assets/static/index.html index 0a00509..9849126 100644 --- a/assets/static/index.html +++ b/assets/static/index.html @@ -28,7 +28,7 @@