Go to file
roozbehk 7987d2375d
All checks were successful
Deploy to Production / deploy (push) Successful in 3m16s
Merge pull request 'develop' (#4) from develop into main
Reviewed-on: #4
2025-11-03 17:04:22 +00:00
.gitea/workflows merged 2025-10-07 16:18:45 -04:00
backend test: trigger CI/CD 2025-10-06 21:37:46 +00:00
frontend test 2025-11-03 11:40:02 -05:00
.gitignore socket added 2025-10-01 20:14:07 -04:00
ecosystem.config.js test: trigger CI/CD 2025-10-06 21:37:46 +00:00
image.png Updating readme.md 2025-10-20 13:21:12 -04:00
package-lock.json Updating readme.md 2025-10-20 13:18:13 -04:00
package.json merged 2025-10-07 16:39:15 -04:00
README.md test 2025-11-03 11:47:29 -05:00

Aero Echo

A real-time flight tracking application that displays live aircraft movements on an interactive map.

alt text

🚀 Features

  • Real-Time Tracking: Watch aircraft positions update instantly with WebSocket connections
  • Global Coverage: Track flights worldwide with extensive ADS-B network coverage
  • Live Data: Access comprehensive flight details including altitude, speed, and heading
  • Smart Filtering: Flight data is filtered based on map zoom level and boundaries for optimal performance
  • Responsive Design: Works seamlessly on desktop and mobile devices

🛠️ Technologies Used

Frontend

  • Next.js - React framework for optimized performance and seamless navigation
  • Socket.IO Client - WebSocket technology for real-time bidirectional communication
  • Tailwind CSS - Utility-first CSS framework for styling
  • Lucide React - Beautiful icon library

Backend

  • Node.js - JavaScript runtime environment
  • Express - Web application framework for Node.js
  • Socket.IO - Real-time event-based communication
  • ADSB.one API - Real-time aircraft data streaming

📋 Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18 or higher)
  • npm or yarn
  • Git

🔧 Installation

⚙️ Configuration

Backend Configuration

Create a .env file in the backend directory:

NODE_ENV=development
PORT=3001

Frontend Configuration

Create a .env.local file in the frontend directory:

NEXT_PUBLIC_API_URL=http://localhost:3001/api/v1
NEXT_PUBLIC_SOCKET_SERVER_URL=http://localhost:3001

🚀 Running the Application

npm run dev

📡 API Limitations

This application uses the ADSB.one API with the following constraints:

  • Coverage Radius: Limited to 250 nautical miles from a specific location
  • Rate Limiting: Maximum 1 request per second to the API
  • Data Caching: Server-side global variable caching is implemented to optimize performance and respect rate limits
  • Smart Filtering: Flight data is filtered based on map zoom level and boundaries to provide relevant information efficiently

🏗️ Architecture

Data Flow

  1. Backend makes requests to ADSB.one API (max 1 req/sec)
  2. Flight data is cached in a global variable on the server
  3. Frontend connects to backend via Socket.IO
  4. Backend filters and sends relevant data based on map boundaries
  5. Frontend receives real-time updates and displays aircraft on the map

Caching Strategy

To respect the API's 1 request/second limit, the backend:

  • Maintains a global cache of all aircraft data
  • Updates the cache once per second
  • Filters data based on client's map view
  • Pushes only relevant data to connected clients

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Contact

Your Name - @yourtwitter

Live Demo: https://aeroecho.roozbehk.com/

🐛 Known Issues

  • Coverage limited to 250nm radius from configured location
  • API rate limiting may cause delays during high traffic
  • Some aircraft may not appear if outside the coverage area

🔮 Future Enhancements

  • Add flight path history
  • Implement aircraft search functionality
  • Add airport information overlays
  • Create mobile app version
  • Add weather layer integration
  • Implement multiple location support