Billing & Accounting

Client Requirement

One of the pioneer telecom group companies in the US who serve the US Military wanted to develop the IP TV service APIs, IP TV Billing system and Android application for the IP TV services.

Client required the following:

  • End to End telecom billing system for their customers
  • Customers can choose the subscription packages
  • They can add any channels for the packages
  • They can enable and disable their accounts
  • They can view the billing usage
  • Video on demand services.
  • IP TV mobile System; which means a Mobile application for the IP TV streaming and on demand video
  • Video streaming on mobile application based on the package and channel access

Project Challenges

Team faced the following challenges:

  • DEERs authentication that was mandatory for the usage of the IP TV was a difficult task
  • The enhanced billing system by reviewing their existing system without any kind of documentation was not at all easy
  • It was difficult to build the platform for the IP TV services along with the billing system that works seamlessly with different service providers
  • Providing the API for IP TV services was tough
  • Customer have never outsourced the work earlier so need to provide the complete comfort which is difficult
  • Incorporating web usability principles while developing numerous features designed for enhancing the users’ current experience was too hard
  • It had been hard to create an easy user interface for the mobile application
  • Integration of the IP TV services in mobile app along with billing system was tricky too

Technologies Used

PHP (Server-side Language) A suitable managed code development environment for handling the extensive project.
Red hat Linux Sturdy and stable operating for online development.
MySQL Engine Versatile, low-maintenance database management system. Cross-platform compatible database component of the LAMP platform.
Microsoft Visio Integrated tool best suited for modular architecture and iterative development of software.
NetBeans IDE Versatile web development tool with exhaustive support for CSS,JavaScript, and various server-side scripting frameworks.
Subversion (SVN) Ideal application providing stratified storage and back up of code files.
Symfony 2.3 Framework Symfony is a full-stack framework, a library of cohesive classes written in PHP.
Android ADT Eclipse Plugin Android Development Tools (ADT) is a plugin for the Eclipse IDE that is designed to give you a powerful, integrated environment in which to build Android applications.
Database: SQLite The SQLite database is a small, compact, and self-contained database available on multiple platforms and available to the public. It has a small footprint and is easy to install and administer. In addition, many devices have the SQLite database already installed, including Android and Blackberry devices.
MVC The model–view–controller framework separates the representation of information in a computer program from the user’s interaction with it.The model consists of application data and business rules, and the controller mediates input, converting it to commands for the model or view.


Project Leader 1
PHP Developers 2
Android Developers 2
Designers 1
Quality Assurance Tester 1


Keeping in mind the enormous structure of the billing system and the challenges involved, a four-tier development approach was adopted.

  • The Database layer containing MySQL server database, tables, triggers and so on.
  • The Data Access layer managed by Doctrine 2.x which contains the Data Access DLL responsible for accessing data from database.
  • The Business Logic layer consists of all business logic procedures for modules.
  • The User Interface layer forms the Graphical User Interface (GUI) of the website.
  • This part of platform is built using Symfony’s View layer, thus making it a Symfony based IP TV system.


  • The design approach was built around Symfony 2.3 and MySQL SERVER 5 due to the affiliate nature of the website.
  • Symfony 2.3 was used in order to follow Rapid Application Development, Do not Repeat Yourself (DRY) and Keep It Simple Stupid (KISS) principles.
  • Symfony 2.x have many community contributed bundles available which helps to make development really faster, efficient and more reliable for platform building.
  • Symfony 2.x has been used in order to keep platform more secured, stable and easy to maintain.
  • In order to access the database in an object-oriented context effectively, an interface translating the object logic to the relational logic was used to communicate with the relational databases in an object-oriented manner.
  • Doctrine 2.0 was used for database interaction layer.

Development Highlights

  • An intermediary abstraction layer was created for accessing data from the database.
  • Triggers, store procedure and custom MySQL functions were used only for complex calculation of data from multiple tables.
  • The UI layer was kept free of any business logic with images, applications and data being called from their respective servers.
  • Web usability guidelines provided and supported by Twitter Bootstrap bundle/package were strictly followed during development and the interface was made easily navigable through judicious use of AJAX, CSS3 and HTML5 controls.