Print this Wiki Page

Software – Web App

The web app is what we’ll use for tracking, but also as a hook that makes this more accessible a project than most. With the web app, we’ll use the phone to upload data to the server as frequently as possible, then have the web app display the data in real time. We’ll make the interface public so you don’t need to register or create an account or anything; why bother? It’s science! We could even integrate facebook and twitter so kids could share their launch.


Front End

  • Needs to integrate at least partially with WP so that there’s a seamless interface.
  • Show a list of launches on a page, sorted by date. Possibly have a “NEW” icon next to ones that have been within the last few days.
  • Have a global refresh button that triggers a refresh of the data, but also a “refresh in… 5/4/3/2/1 seconds that does it automatically”
  • Clicking on a launch opens a popup which contains all the information:
    • Table of data
    • Graphic of altitude/distance
    • Map of location
    • Media that has been uploaded
    • Commands to execute
  • Close icon to get out of the div.
  • Table of data:
    • Timestamp, sorted by this column
    • Lat
    • Lon
    • Altitude
    • Other sensors? How do we display columns we don’t know about, and how do we decide which ones are important?
  • Graphic of altitude/distance
    • altitude as vertical axis, distance traveled as horizontal axis. Start in the center with known coordinate, then calculate distance traveled as NW to the left and SE to the right. Not ideal, but better than nothing. Plot a point every time we have the data. Should we use a graphing library or have the server generate the image?
    • could use a nifty balloon graphic as the last known location with little dots to show past locations. Maybe even do a gradient on the dot color to show age.
  • Map of location
    • simple google map. Balloon icon for current location, colored dots at previous locations.
    • It might get too cluttered to have lines between them; maybe even too cluttered if it’s just points. We may have to look at this.
  • Media
    • Regularly updating carousel of images and video that have been uploaded to the server.
  • Commands
    • Launch: could trigger the release mechanism if the balloon is filling at a safe distance. Only active if the balloon doesn’t have a launch time
    • Abort: could trigger the tether release if the launch is underway and we need to abort for some reason part way through.
    • Play Audio: if possible to play through the speakerphone, could trigger audio notifications so that we can find it easier.
    • Take Photo: could trigger a manual capture of a photo. Of course, this will only work if there’s a signal, and the frequency of photo taking should be pretty high, so this might be an unnecessary button.

Back End

Needs to integrate with the android app, which means having web services.

  • create – create a new launch
    • input – name
    • input – organization (optional)
    • input – contact (optional)
    • output – id
  • update – used to send data to the server
    • input – id
    • input – array of arrays, where each item is an array of data fields that can vary.
    • output – indexes of successfully stored records in the same order
  • land – used to notify the server that the payload has landed and now is waiting for recovery
    • input -id
    • output – ok
  • getmessages – used to check if there are any commands that it needs to execute
    • input – id
    • output – array of messages (id,timestamp,command)
  • recover – used to tell the server that the payload has been recovered and the mission is complete
    • input – id
    • output – “ok”

Database structure

  • launch
  • launch_data
  • message
  • media
This page is a Wiki! Log in or register an account to edit.

Permanent link to this article: https://www.apollo67.com/wiki/software-web-app/