M3 Master Intelligentes Bilanzkreismanagement  

Team

  • Katharina Blass
  • Robin Decker
  • Mischa Koischwitz
  • Alain Ngoufack Nguefack
  • Nguyen Do
  • The-Anh Nguyen
  • Nhu Mong Tran

Supervision

Dr. Ludwig Rauch

Tech Stack

Amazon AWS

During the early stages of our project we agreed that we want to run the application as cost-efficient, scalable and performant as possible. We therefore decided to build the system on a serverless architecture using Amazon AWS Lambda functions. The lambda functions only run when they are called through their individual endpoints and provide the latest prediction data generated by the machine learning model. At the end of each month we only have to pay for the computing powert that way required to run these functions. This results in on existent fix costs for running our application and allows to easily extend, scale and maintain our application in the future. The prediction data, as well as the entire frontend are stored on AWS S3 Buckets where it is only required to pay for the exact amount of bytes our files have. For user management we are using Amazon AWS Cognito. Here the final costs depend on the amount of users our system has. The AWS environment enables us to add more resources like databases or media storage as required and when required. It also makes all occuring costs variable and therefore completely avoids fix costs that otherwise would have come up using a traditional server based architecture.

Expressjs

For our backend API that runs on AWS Lambda we used Express to build the http endpoint for the lambda function.

React (Typescript) + Tailwind Css

Our frontend is built on React and Typescript which helped us to reduce bugs and runtime errors during development. Typescript also makes it easier for future developers working on the project to dive into and understand the code and how our components work. Using Tailwind Css and its utility first approach, we were able to build new components for our dashboard without having to spend too much time structuring our Css and thinking about methodlogies like BEM.

IBKM Applicaion Architecture
Application Architecture

Other Tools

Gitlab

For hosting and versioning our code we used Gitlab which was provided by Exxeta.

Our CI/CD pipeline was built using Gitlab CI and includes a test stage, running when feature branches are merged into our development branch. Whenever we completed a user story we merged our changes into our main branch which then triggers the build and deployment stage, building the application and deploying it onto the AWS S3 Bucket.

Testing

For tests Cypress was our framework of choice.

Jira & Scrum

Our entire design and development process was strictly based on the Scrum framework. Jira helped us to manage our project and sprints.

Miro & Figma

For brainstorming, making notes during user interviews as well as tests, retrospectives and meeting protocols we used Miro. Our entire design was created using Figma.

Discord & Microsoft Teams

For internal meetings we used Discord, for external meetings with Exxeta and other stakeholders we used Microsoft Teams.

After Effects & Loom

For our final presentation video we used Adobe After Effects for animation and Loom to record screencasts.