SAAS Web Application for the International Calling Company
Technologies and platforms: ASP.NET MVC 5, Razor; Entity Framework 4.5; magic strings: T4MVC; logger: NLog; validation (BO validation): FluentValidation; DI (IoC): SimpleInjector; mapping: ValueInjecter; ORM: NPoco + custom changes; StyleCop (Server side); Angular JS + Bootstrap; Unobtrusive ajax; Knockout, and other client side libs; jqGrid (based on commercial jqGrid for MVC component), datatabeles.js (Client side); DBPlatform: Oracle 11g; Redis 2.8.x; Tests: NUnit
Effort: 20 man-months
One of our strategic client and partner (a large telecommunication company) provides a prepaid calling service that allows the making of cheap calls inside and outside the USA via Internet (PIN-less VoIP).
This is a very popular service. At the start of 2015, it had over 3 million active users. However, the technical platform behind the service that was used for the business process management had faced performance issues up to that time. Additionally, the scalability limitation of the legacy platform prevented any significant business growth from taking place. The client requested our help.
We created a scalable, well-designed SaaS web application from scratch for our client. The new system has 11 separate versions with multiple languages and different functionality (depends on the legislation of each country). The web application is currently being used by 7 million (!) users without any performance issues.
The Features of the SAAS Web application
- Administration panel
- Management of statistics regarding incoming/outgoing calls for each user
- Customer billing system
- Tariff plan management
- Money transfer without bank account
- Some marketing tools such as landing page builder etc.
The Web Application has three basic levels of access: for personal users, corporate accounts and the functionality for retailers.
Agile Methodology to Meet Deadlines
To meet project’s deadlines we used Agile methodology. For example, we created very detailed documentation just for the next one sprint (each sprint = 2 weeks). This really helped us to be flexible and make requested modifications from the client in very short time.
QA Automation to save about 30% of testing budget
Another great point that provided success on this project was using QA Automation together with QA manual activity. Our QA team started to use QA automation from the very beginning till the final release. This helped the client to save about 30% of the budget for testing processes and provided excellent result in the quality of the developed software.