The aim of this web app is to create a visualization of satellites orbiting the Earth.
The positions and movement of the satellites are parsed from the TLEs(Two line element sets) obtained from Celestrak using a very helpful library called tle.js. These are accurate. The altitude(three-dimensional distance from Earth) is approximated based on the real altitude obtained from the TLEs.
AWS lambda, BeautifulSoup, AWS EventBridge, AWS DynamoDB, Node.js, THREE.js, tle.js, HTML, CSS
Backend: Celestrack updates the TLE data every three to four days. To obtain the latest data, I have created a mechanism that automates this process via AWS. First of all, four lambda functions scrap the data from the Celestrak website and populate a DynamoDB table. These functions are called via Eventbrdige every three days, which means the end user always gets the latest data.
Frontend: We call the DynamoDB table and obtain all the Two line element sets from the table. The core logic then parses these TLEs and obtains the position, velocity, altitude, and other kinds of satellite data. The animation frame updates the position of satellites every second. All 3D objects are rendered using THREE.js.
Thanks to the folks behind tle.js for creating an awesome library.