Our mobile application works on Android platform and represents a corporate tool for tracking traffic and managing communication costs for any employee of the telecom company.
The application is designed to manage user’s costs for communication services, to keep records of outgoing and incoming information (phone calls, sms, mms, Internet traffic).
The application is integrated with the customer’s system and uses an existing extensive library of customer’s tariff plans. Account activation is required before using the application. The application works independently after activation and does not require further setting.
Every month synchronization with the customer’s server is implemented in order to download and upload the necessary information in the application. It means the application downloads detailed tariff plans and billing policies for this phone number from the server once a month. At the same time, the results of the separate billing for the last month are returned to the customer’s server. After this monthly synchronization, the application runs independently and no longer requires a connection to the server.
The capabilities of this application allow users to optimize telecommunication costs and reduce transaction costs for communication services.
This project is build using Maven tool. Maven helps automatically build an application with profiling customization, and manage dependencies using several repositories.
SQLite is used as a database for storing data on the Android device in the application. ORMLite framework is used for linking the database tables to the object model of the application.
The application contains a large number of graphs and diagrams that are implemented using the AChartEngine library.
Several observers were created to collect data on the customer’s expenses for communication services.
The application is integrated with other customer systems using Rest and SOAP web services.
Unit testing of this Android application is carried out using the Robolectric framework.
The application is protected from reverse engineering using the ProGuard library, and it is also signed by an SSL certificate that is created using the BounceCastle library.
SVN was used as a version control system on the project, and Jenkins was used as a continuous integration system. An automatic update of the application in the market is also implemented with the help of Jenkins.
Stack: Java, Android SDK, Maven, OpenCSV, Gson, Json, Apache commons, Apache POI, Rest, Soap.
Infrastructure: Jenkins, SVN.
Test Automation libraries: JUnit, Robolectric, Mockito.
DB: SQLite, ORMLite.
Other libraries: Support Library, Achartengine, LibPhoneNumber, ProGuard, BounceCastle.
Our team was engaged in supporting the application’s functionality, fixing bugs and developing new functionality.