Elite Dangerous Timeline

A project for visualising game events using an API of my own creation with an AWS DynamoDB backend.

AWS

Motivation

The project started as a desire to providing me with some context as an Elite Dangerous player. The in-game experience does not provide you context/history for a player you have encountered before. Many of these interactions log to the game journal - a source which I’ve used to create an event-driven text to speech implementation using Google Cloud text to speech.

Additionally, I had the following learning outcomes in mind:

  • Further my learning of Python and API authorship.
    In this case, by initially producing the Flask API middleware for the local prototype implementation. With a hope that it is portable into Lambda functions upon migration to AWS as a serverless application.
  • AWS DynamoDB to learn this service specifically and NoSQL in general

Current implementation

A webpage frontend is visualising the events as a timeline using the vis.js Timeline library. The timeline frontend requests data via a GET call to a Python Flask API. The API uses the AWS SDK for DynamoDB (Boto3) to access a DynamoDB backend.

Three events are captured and reported on:

  • Interdiction - when a player pulls you out of supercruise (usually a prelude to combat).
  • Killed - killed by a solo player.
  • Wing killed - killed by a group of players in a wing.

Media

Overview of app

Video

Limitations

  • Locally hosted with a manual startup.
  • Data is loaded manually.
  • The visualisation library is no longer supported.

Aspirations

In order of preference:

  • Migration to DynamoDB on AWS.
  • Serverless hosting on AWS.
  • Event-driven updates.
  • Consider replacement of the visualisation front end to a supported library.

Relevant posts