BRIDGES Design

In our design the student use our client on their personal computer. This client program is run via a gradle build script which allows it to be integrated into any IDE. We chose to do this because we may have students who are using Eclipse, JGrasp or Netbeans. This client can connect to the server via an API key or log in credentials.

The server provides three main functions; a crawler which gets data from data-sources, an API which provides access to data from the client, and a website where students can view their visualizations, change their log in credentials, or validate their account with data-sources. Each time the client makes a request for data from a data-source we determine whether they have provided us with the authentication to access the data-source. If they have provided authorized access, we make a request on their behalf; otherwise, we make a request using our public account. The public account will only be able to fetch from certain providers because we have a limit to the amount of requests we can make with the public account. All requests are cached to prevent request throttling by the data-source's API. After receiving data, students will be required to manipulate this data and then make a post request with this data to the server via the API. These posts will store their submission in a database and generate a link to a webpage, where the data in the database will be visualized using D3.