https://github.com/telman03/aerotrack
A real-time flight tracker backend built with Go and WebSockets. Demonstrates stateful, event-driven architecture and uses Docker for easy deployment.
https://github.com/telman03/aerotrack
docker docker-compose golang grpc-go websockets
Last synced: 2 months ago
JSON representation
A real-time flight tracker backend built with Go and WebSockets. Demonstrates stateful, event-driven architecture and uses Docker for easy deployment.
- Host: GitHub
- URL: https://github.com/telman03/aerotrack
- Owner: telman03
- Created: 2025-08-10T17:52:37.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-08-22T11:08:10.000Z (11 months ago)
- Last Synced: 2025-08-22T13:26:35.504Z (11 months ago)
- Topics: docker, docker-compose, golang, grpc-go, websockets
- Language: Go
- Homepage:
- Size: 18.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# ✈️ **AeroTrack: Real-Time Flight Tracker**
AeroTrack is a real-time geospatial tracking system built to monitor and visualize live flight data. It demonstrates a stateful, event-driven architecture by ingesting live data, managing the current state of each flight, and pushing updates in real-time to connected clients.
---
## **Technologies Used**
- **Go (Golang):** Core backend service
- **WebSockets:** Low-latency, real-time communication
- **PostgreSQL:** Source of truth for flight data
- **Docker:** Containerization for easy setup
---
## **Core Features**
- **Live Data Ingestion:**
Background process simulates or ingests flight coordinate data.
- **Real-Time State Management:**
Maintains current location and status for each flight in memory.
- **WebSocket Broadcast:**
Broadcasts location changes to all connected clients.
- **Data Persistence:**
Persists all flight data and route history in PostgreSQL.
---
## **Getting Started**
This project is containerized with Docker for a straightforward setup.
### **Prerequisites**
- Docker & Docker Compose
- Go (if running outside Docker)
### **Setup**
```sh
git clone https://github.com/telman03/aerotrack.git
cd aerotrack
```
**Start the services:**
```sh
docker-compose up --build -d
```
**Check the logs:**
```sh
docker-compose logs -f aerotrack-service
```
---
## **Architecture Overview**
The system follows a simple client-server model with a focus on real-time data flow.
```
+-------------------+ WebSocket +---------------------+
| Go Backend | <-----------------------> | Client Dashboard |
| (Data, DB, WS) | | (Map Visualization) |
+-------------------+ +---------------------+
|
| PostgreSQL
v
+-------------------+
| Flight Data DB |
+-------------------+
```
- **Go Backend:**
- Data Simulation (Goroutine)
- PostgreSQL Interface
- WebSocket Server
- **PostgreSQL:**
Stores flight data (long-term memory)
- **Client Dashboard:**
(Not included) Connects via WebSockets to visualize live flight paths
---