ICARUS: A Cross-Platform Mobile Application that simplifies the process of using the NASA POWER site

High-Level Project Summary

The Icarus app provides a fast and simple way to use the NASA POWER API. There are two main features provided by this application, available on iOS and Android. The first is the "Data Access Viewer" page which allows users to select parameters and view graphs of those time series. The second is the "Solar Power Efficiency" page which takes in user input from their personal solar panels, compares that to solar irradiance at their location and calculates how efficient their solar panels are performing. It then compares them to the average efficiency of the panel based on the brand specifications.

Detailed Project Description

The project is implemented fully in React Native meaning it is cross-platform. We used Expo-cli to deploy and help simplify installing dependencies. Here is the layout of the app:


Home Page:

Provides two buttons - one starts a new session, the other uses redux to save states and return to a previous session.

Data Access Viewer Page:

Uses the NASA POWER API and location services in a modal view to provide graphs of selected parameters. Also uses Google map API to provide a second option for pinpointing exact latitude and longitude of users home.

Solar Panel Efficiency Page:

This page takes in user input in another modal, this time for the dimensions of their home solar panels and the model. Then All Skies Solar Irradiance from that location will be pulled and used to calculate how efficient the solar panels are working. After that it will then be compared to the average efficiency of the solar panel provided by the company specs.

Space Agency Data

For our project we are pulling data from NASA's POWER project API.

Hackathon Journey

Our Space Apps experience was exciting and challenging as we had to learn how to develop an app for the first time from scratch. We learned a ton! We searched through and tested many different frameworks for app development before we settled on React Native as our cross-platform framework of choice. Most of our learning came in the form of JavaScript and React, but we also got to familiarize ourself with many other technologies within these such as API calls, Redux and Expo.

We both have Physics undergrads and so to be able to work with Solar Energy immediately caught our eye as the coolest project to work on.

We decided to follow the use cases provided in the "You are my Sunshine" challenge. Then we storyboarded the flow of the app and got stuck into coding!

There were many challenges and setbacks throughout this hackathon, however we managed to pull through by lots of open communication and assigning tasks based on skills and interests. Whilst helping each other out if we got stuck.

We'd like to thank NASA, the local leads, and all other participating Space Agencies for the hard work they put into setting up this hackathon for free!

References

We heavily referenced the react-native docs (https://reactnative.dev/) as well as the the expo docs (https://expo.dev/).

For plotting we used VictoryJs (https://formidable.com/open-source/victory/). To fetch data we used axios (https://www.axios.com/). For state management we used redux (https://react-redux.js.org/, https://react-redux.js.org/).

For Geolocation we used expo-location (https://docs.expo.dev/versions/latest/sdk/location/). To interface with the google maps API we used react-native-maps (https://github.com/react-native-maps/react-native-maps). For ui we used react-nativ-paper and Vector-icons (https://callstack.github.io/react-native-paper/, https://oblador.github.io/react-native-vector-icons/).

Tags

#software #react-native #hackathon #Icarus #You-are-my-sunshine

Global Judging

This project has been submitted for consideration during the Judging process.