Project summary
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).
Application functions
- To monitor all types of used traffic (calls, messages, data transfer) on the device.
- To show the actual cost of used traffic both in visual reports and in notifications. For easy viewing of statistics on expenses, reports include a variety of charts and graphs.
- To notify user about the amount of written-off funds via Android notifications.
- To provide an opportunity to view the history of the used funds.
- To notify user when the cost of used traffic exceeds a certain limit or its corporate budget, either when it is necessary to determine the call category: a call for business communications or a call for personal use.
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.
Project Specification
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.
Technologies
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.
Screenshots
Our responsibilities on the project
Our team was engaged in supporting the application’s functionality, fixing bugs and developing new functionality.
Project features
- Communication within a distributed team.
- Supporting different Android versions and a huge number of permissions.
- Integrating the application with other customer systems.
Project results
- A new functionality was implemented and bugs were fixed.
- A repository for loading the support-v4 dependency was added in the Android project pom-file, because there is no repository of the required version for this dependency in the standard Maven.
- Unit tests for the Android application were written.
- The project was successfully stabilized and added to the market.
- All stages of the project were completed successfully.
Company’s achievements during the project
- Continuous Integration was introduced, automated building and signing the application with a certificate were created.
- Project support documentation was created.
- Performance analysis and queries optimization were performed to improve the application work.