Industry Project: Backburner

2019-10-21

student

web

design

aws

industry-project

Burndown Chart for Week 6

This week this project had to take a back seat to other projects with sooner deadlines, and I only accomplished part of what I had originally planned.

This week, I finished implementing Redis for caching and Amazon's S3 for long-term and cross-instance storage. In addition, I added a administration page with a login page to allow developers to have a simple centralised control system for their server.

Demonstrating Caching, Long Term Storage, and Admin Page

Redis and S3

This week I spend the majority of my time working on the Redis and S3 code to cache data locally and store data across instances in the long term. During this process I again encountered race conditions, which slowed development. Both my Redis and S3 functions were returning undefined objects instead of the data they were supposed to fetch.

I solved this issue by sourcing and implementing an alternative library for Redis: Async-Redis This library promisifies the functionality of the standard Redis library, such that it is usable with async/await.

With this sorted, I looked into different libraries to perform the same promisification of the AWS-SDK. After some time of looking, I was not able to find a library to do this for me, so I experimented with restructuring my code. Shortly into restructuring, I discovered that the AWS-SDK has promise methods for many of its functions, which allowed me to neatly solve the race condition issue with S3.

Admin Page

While working on the Redis and S3 code, I found myself wishing for a simpler way to run my testing code. I slowly came to the conclusion that a simple Web page served by the server might be the best option to fill that need.

This page setup was relatively quick and easy to implement, as I was able to repurpose work from other projects. I added a page to ask for login details, and check those details on the server side before sending a response to the browser. When polished, this will act as an administrative tool for developers to manage the server from a user-interface instead of a command line.

Demo of Admin Page

Until Submission

Burndown Plan for Week 7

The plan for the next week includes finishing the GitHub implementation, adding the Discord API calls, then writing the C++ calls to contact this server from the Feedback Panel. Beyond this point, I plan to move on to polishing the Feedback Panel with some textures and animations, and documenting the installation procedures for both the server and the panel. Ideally, I will end this next week with all necessary features implemented and polished.

Industry Project: Server

For the remaining time until submission, I will be undertaking the same tasks as last week, as I was not able to see them to completion within the week.