Inspiration

When we saw that HackHarvard had Earth and Space as a track, that immediately grabbed our attention because it seemed like a unique category to build a project in. After doing some research on the current user accesible data in the topic, we realised theres a lot of data available out there but very specific to specific companies. The idea grew on us that it would be really convinient to just grab and pick the fields we need and not have to worry about the excess influx of unused data. Thus came the idea of creating NexusAPI. Nexus translates to a black hole, pulls everything towards itself in a way how our application combines the massive ocean of APIs into one.

What it does

We've seamlessly integrated multiple space and Earth-related APIs into one unified platform. With NexusAPI, you can effortlessly access and organize data on solar flares, geomagnetic storms, and space missions, weather and many more. Explore accurate statistical data from renowned industry leaders like NASA, ISRO, SpaceX. Simply choose your categories, and we'll deliver clean and structured JSON data for your specific development needs. No authentication required so Get ready to explore the cosmos and enhance your applications with NexusAPI today!

How we built it

The project mainly has 3 components to it:

  1. Backend - The backend is built entirely with Golang. The reason we chose Golang is due to it's seamless support in creating REST APIs, fast and scalable codebase and support with our database. We found numerous space and earth based APIs created by major organizations in various countries and finalized on 3 for the purpose of this Hackathon; NASA - The leading name for Space and Exploration in the world currently, ISRO - The Indian Space Research Org, recently soaring high with thier state of the art low budget rovers and finally SpaceX - Led by the sharp and witty Elon Musk. We parse the data from all these services, store them in a legible, relevant format.

  2. Database - That brings us to the 2nd part of the project, the database. We decided to go with Redis as the database because it is something we have never worked with before and thought it might be fun to learn something new. Redis has been the database of choice for many Enterprise companies and it definitely a good skill to keep in hand. We stored all our data in this NoSQL Database using key value hash sets. For the MVP we currently processed over 2000+ pairings of data.

  3. Frontend - Finally we have the front end. For this we used the trusty NextJS framework which manages your routing, directory structure and page handling. We decided to just make a single page app would be enough to showcase the power this API holds. The page allows users to interact with a smooth, modern interface to carefully pick and choose which data they need and based on that it dynamically generates a special unique endpoint.

Challenges we ran into

We ran into plenty of challenges in these 2 days. First one was just working with Redis in general. Never worked with it before so had to dig through the documentation really deep. There is also not a lot of documentation around golang and redis and so had to figure out new ways and sometimes even had to reinvent the wheel out of necessity.

Secondly, it was trying to deploy our backend to a host online was a hurdle in our project. We had to migrate our database from a local server to a publically hosted server using dump rdb files.

Finally the Domain transfer took us a bit to figure out with GoDaddy and Google Pages and Vercel at the same time. Though not that big of a problem, it was a good learning curve.

Accomplishments that we're proud of

We are proud that we were able to complete a project and build something we can showcase. Also the feeling of coding constantly for a whole weekend is really nice.

What we learned

We learned how to work in a team, collaborate on github and most importantly how to work with Redis!

What's next for NexusAPI

We plan to open source the NexusAPI project on github and let others contribute improvements to it. It would also be fun to see what people can build with it and experiment. We built it around just Space and Earth but the idea of this as a service in itself is something that can be leveraged into useful packages (node, python, golang). We hope people can use this API to just make their lives a little bit easier.

Built With

Share this project:

Updates