Fight loneliness - with technology!

When it comes to reaching all people, independently of their age and technical skills, the telephone is still the communication medium of choice. That’s why our customer decided to implement an interactive voice response (IVR) system based on Twilio. When we were asked to take over, the project wasn’t in the best shape. The code kept throwing runtime errors, there was basically no test coverage and the application was hosted on an overpriced server.

We started by tidying up the code: Separating the layers web, business logic and data access and making dependencies clear. This helped us to introduce unit tests. These tests became also a part of a new and shiny CI/CD pipeline.

After that, we set up a new system architecture. Instead of building code locally and deploying it manually via RDP to a VM, we introduced a git-triggered deployment pipeline which deployed the application to Heroku. The database was treated as a separate service now, instead of running on the same server as the IVR logic. The result was an ASP.NET Core application, running within a docker container and talking to PostgreSQL.

Moreover, we introduced a separate staging environment, also fed by the CI/CD pipeline. We made use of Azure Application Insights to keep track of logs and metrics.

After taking care of the remaining points of the Twelve Factor App, we implemented business requirements in an iterative manner in order to reach our defined goal: Connect lonely people with the help of technology.

Technologies used: Twilio, VueJS, ASP.NET Core, Heroku, Gitlab, PostgreSQL, Docker, XUnit