DEV Community

TeamWicket
TeamWicket

Posted on

BCP Calltree

What I built

Every company has a Business Continuity Plan (BCP) to deal with unforeseen events that may disrupt the business' normal activity. The possibility to reach all the employees in an automated fashion, using Twilio APIs, simplifies dramatically the process of contacting manually everyone in the organisation, by means of traditional phone calls.
In this Calltree model, one employee has the designated role of CHAMPION. The CHAMPION can initiate an event by specifying the target role to send the messages to, in a hierarchical-style (CHAMPION -> MANAGER -> LEADER -> REPORTER), and also a text as body of the SMS.

Calltree hierarchy

When an employee replies to a SMS sent by the system, the response is then saved in the database. The champion, through the UI, can check the status of the event(s), terminate it and check the results in the dashboard.
The first level of statistics is an overview of the overall events - number of SMS sent out, number of replies and average response time in minutes. The second level of statistics is more comprehensive and collects data from each employee.
When the number of the replies is equal to the number of SMS sent out during the event initiation, the system will automatically terminate the event for the champion, if the event has not been terminated prematurely by the champion.

Category Submission:

Engaging Engagements

Link to Code

BCP Calltree on Github

How I built it

This is a fairly standard 3-tier application, composed of frontend, backend and database.
The frontend stack is React (with JavaScript and TypeScript - statically typed). The backend is a mixture of Java and Kotlin languages, in combination with Spring Boot, REST APIs are documented using OpenAPI v3 specifications (with SpringDoc and Swagger implementation), embedded JMS and Spring Data.
For demonstration purposes the application is using an in-memory database (H2), but the system is ready to use PostgreSql, just by selecting the appropriate property file at startup.

CircleCI has been used as a building tool, connected to the Github repository for automated build after every code push.

Top comments (0)