Web app

|

Oct 2020

Unnecessarily over-engineered web calculator

This calculator web app is implemented using several different languages and cloud technologies including stateless, containers, CI, and is deployed to Rancher

Project highlights

Backend

I built a Node.js proxy server using Express that takes authenticated frontend requests to perform the mathematical operations. Configured extensive error handling and logging using morgan middleware. Errors are caught and displayed by the fronend

Serverless compute

Each of the calculator operations are hosted on either a live service URL on Rancher or Lambda function

CI

This app uses Travis CI, tests are automatically ran when code is pushed to git. During testing, both unit tests and web request tests are carried out to ensure the live serice URL is running correctly. “chai” and “mocha” packages are used to test the web proxy

CD

Each calculator operation is containerised using docker and deployed to Rancher. I created multiple ingress controllers to ensure funcitons worked correctly if an endpoint failed

Database

This project is connected to an AWS Relational Database Service. The calculator has a "save" button which stores values into the RDS to then be recalled later. All system failures are sent to the database. For alerting I used AWS Simple Notification System, when a failure is detected in one of the calculator operations an email is sent my email address

Want to hear more about the project? Get in touch or check my social links

matthewleyburn@gmail.com