A comprehensive flight tracking and weather monitoring system that integrates with FAA SWIM (System Wide Information Management) to provide real-time flight data, weather information, and aviation alerts.
- Real-time Flight Tracking: Live flight data from FAA SWIM
- Weather Integration: METAR, TAF, and weather alerts from AviationWeather.gov
- ITWS Weather Alerts: Real-time weather warnings and advisories
- Interactive Web Interface: Modern dashboard with flight search and details
- Docker Support: Easy deployment with Docker Compose
- Database Integration: PostgreSQL with optimized schemas
- Background Processing: Celery workers for data processing
- Monitoring: System health checks and logging
The system consists of several key components:
- Flask API: RESTful API for flight and weather data
- PostgreSQL Database: Stores flight plans, tracks, and weather data
- Celery Workers: Background processing for data ingestion
- Solace Consumer: Real-time data from FAA SWIM
- Weather Services: METAR/TAF data and ITWS alerts
- Web Interface: Bootstrap/Tabler.io frontend
- Docker and Docker Compose
- Git
- Clone the repository:
git clone https://github.com/gmisner/golfmike.git
cd golfmike- Start the system:
docker-compose up -d- Access the web interface:
- Main Dashboard: http://localhost:5500
- Flight Details: http://localhost:5500/flight-detail.html
- API Health: http://localhost:5500/health
The system uses environment variables for configuration. Key settings:
POSTGRES_DB: Database namePOSTGRES_USER: Database userPOSTGRES_PASSWORD: Database passwordSOLACE_HOST: Solace message broker hostSOLACE_USERNAME: Solace usernameSOLACE_PASSWORD: Solace password
GET /api/flights/current- Get current flightsGET /api/flights/{aircraft_id}/detail- Get flight details with weatherGET /api/flights/{aircraft_id}/position- Get current positionGET /api/flights/{aircraft_id}/track- Get flight trackGET /api/flights/{aircraft_id}/flightplan- Get flight planGET /api/flights/{aircraft_id}/alerts- Operational / SWIM alerts for a tail (same filters as/api/flight-alerts?aircraft_id=)GET /api/flight-alerts- Alerts list; filter byaircraft_id(recommended), optionalsince/until(ISO),offset,acknowledgedGET /health- Liveness (process up)GET /health/ready- Readiness (database connection); returns503when the DB is unreachable
The system provides comprehensive weather information:
- METAR: Current weather conditions at airports
- TAF: Terminal aerodrome forecasts
- Weather Alerts: AIRMET, SIGMET, and ITWS alerts
- Real-time Updates: Automatic data refresh from multiple sources
golfmike/
├── .devcontainer/ # Docker configuration
├── models/ # Database models
├── parsers/ # XML data parsers
├── storers/ # Data storage handlers
├── static/ # Web interface files
├── utils/ # Utility functions
├── app_flask.py # Flask application
├── simple_api.py # API endpoints
└── docker-compose.yml # Container orchestration
# Run system health check
python check_system_status.py
# Test weather API
python test_weather_api.py
# Audit curated SWIM ingestable samples (strict)
./tools/audit_ingestable_samples.shSee docs/CI.md for GitHub Actions, branch protection, and database-backed integration tests.
# Create weather tables
python create_weather_api_tables.py
# Check database status
docker exec postgres psql -U postgres -d postgres -c "SELECT COUNT(*) FROM track_information;"The system includes comprehensive monitoring:
- Health Checks: API endpoint monitoring
- Logging: Structured logging with timestamps
- Error Handling: Graceful error recovery
- Performance Metrics: Database query optimization
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For issues and questions:
- Create an issue on GitHub
- Check the system logs:
docker-compose logs - Review the documentation in the
docs/directory
- Enhanced weather visualization
- Mobile-responsive interface
- Historical data analysis
- Performance optimizations
- Additional data sources