CSG International

CSG International

Year: 2017 Duration: 6 Months

EDR Matching

Telecommunication carries usually have to dispute call, message and traffic information between themselves. This application helps them in making this process easy.

This was the first project that I participated in a this big American telecommunications consultancy company called CSG International. One of the major problems, that usually led to issues in telecommunications company is the matching of data between carriers. Each carrier has to pay an amount of money to another carrier by the services borrowed, roaming and data. But the trouble are always comparing the information between the large datasets of information of the two companies.

 

Therefore, the EDR Matching, a project based on Python and Javascript, also with many Oracle PL/SQL procedures, triggers and transactions, aimed at getting two huge datasets of EDRs( Each call or data record com the carriers) from the carriers and compare them to check if one of the sides were not with additional and inconsistent data. The backend was a set of Python scripts that connected to an Oracle database, read, transform, and compare two large dataset of csv files. 

 

The main script was batch process, and there were classes for doing the batching process part, also a Batch manager to control, and monitor each process by its PID and other important information about it. Big PL/SQL transactions like validating two tables, merging, updating were handled by procedures that the Python called and monitored. 

 

All the data were stored in dictionaries and hash tables, because of the large amount of data, data structures, time/space complexity, sorting algorithms and comparing algorithms, were used in order to raise performance.

 

The GUI was built using APEX from Oracle, together with Javascript and CSS. Where the user could start, monitor and check the results of each process. A single sign-on was implemented syncing the AD group of the company with some PL/SQL procedures that controls the authentication/authorization on APEX.

 

The session and credentials between Python and the database used Oracle OWallet to manage passwords , database SID and other secured information.

 

Basically as the delivery model adopted for this project, was the Waterfall, I worked and was involved in all the last points.

Image-empty-state_edited_edited.jpg

Image-empty-state_edited_edited.jpg

Image-empty-state_edited_edited.jpg