Air traffic control simulator
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Air traffic control simulator project for my Ruby class. Calculates X, Y coordinates and altitude for incoming flights; regulates descent speed and diversions; and tracks planes in flight with a web interface.


bundle update && bundle install


In one terminal window, start the webserver:

cd lib/controllers
ruby server.rb

In another terminal window, start the flight simulator:

cd lib
ruby simulator.rb realtime

JSON methods

  • The flight simulator will submit flights at random in the format http://localhost:8080/entry?flight=YY1234. The entry endpoint is also exposed for ad hoc flight submission. The server will respond with JSON indicating your flight was accepted or diverted, based on current air traffic.
  • The server reports tracking info upon request at http://localhost:8080/tracking_info. Include the optional ?timeframe param to specify how many seconds of history you want to see.

Web interface

Browse to http://localhost:8080/ to view the web interface.

Project Description

Build a web service that provides tracking service to subscribers.

  • It contains a properly operating simulator that simulates flights entering SeaTac airspace;
  • It has a method that takes requests for registration of an aircraft entering the airspace, and makes registration records in the application database;
  • It has a method that responds to requests for traffic information, returning data on all registered flights as indicated in the design specification;
  • Its responses should contain data on flight names, coordinates (X, Y as relative to the Final Approach start point), its speed and altitude;
  • It has a Web server that responds to external HTTP GET requests with the specified data, and accepts HTTP GET calls to register aircrafts entering the airspace.

See the docs for further details.