The theme of this hackathon was to "Save the Universe." We thought about the possible dangers of space and how we could possibly inform or protect people from them. While researching, we came across NASA APIs and were impressed with the technology they had available to the public. We were convinced to use at least one of these APIs and chose Asteroids NeoWs; a web service that provides asteroid information.

What it does

Salvare is a web app that uses NASA and JPL APIs to identify, track, and graph potentially dangerous asteroids near Earth. It displays the orbit of the asteroid relative to the planets and displays relevant information including the date of the asteroid’s closest approach, the closest distance, and its estimated size.

How we built it

We have a backend build off of nodejs and express. It takes in data from our parser (explained next) and stores it in our mongodb database. It also uploads images to a google cloud storage bucket. Our parser retrieves data from the nasa api (could be on a weekly interval) and sends it to our backend, where it is processed and stored. When a user visits our react frontend, a request is made for the asteroid occurrences, and then the received data is displayed. The router for our frontend is made with React-Router, making the design type a “single page application”.

Challenges we ran into

By far the hardest part of the project was getting and capturing the graphed images and dealing with the NASA API data in our database. However, Mongoose schemas and Python’s opencv helped tremendously here.

Accomplishments that we're proud of

We’re proud of our solution of managing the graphs from the JPL website and their storage in the Google Cloud bucket and database. We’re also ecstatic that we were able to utilize Google Cloud services to manage the database to allow for easy scalability and quick development for the website in the future.

What we learned

We learned how to automate the process of taking data from a website with python and selenium. We learned how advanced (nested) mongoose database schemas work, and we implemented them efficiently.

What's next for Salvare

There is more information from the asteroid API that we aren’t using at the moment. We may update it to include said data, and this will be quick due to mongooses ease of use. One idea we had from the start is to make the pictures into GIFs or interactable elements since NASA’s JPL site can also display future positions of spatial objects.

Share this project: