4 Steps case study included:
Simulating User Profiles: Generating Checksum Valid Credit Card Numbers
The customer owns a payment gateway service and is developing anti-fraud protection. For this, the customer requires up to 500 simulated users per batch, complete with relevant information and credit card numbers that comply with geographical, payment network, and checksum rules.
Creating a batch of this size manually for every test is a straightforward but time-consuming process. Therefore, a software solution is to be built.
The full requirement can be accessed in the Test Client Data Generation Service.
By analyzing the customer's description, the following characteristics have been identified: Product scope is final and the problem falls into the Repeating Tasks category.
The chosen development approach is the Waterfall development approach, since it is the most reasonable choice when both the problem and solution are clearly known (without the need for continuous feedback).
Having a clear goal that is to be achieved with the software solution, and having chosen a development approach, the requirements and offer can be prepared.
Usually, in cooperation with the customer, both are combined into one document, which serves both as the specification and for legal obligations.
In this case, the customer provided a clearly defined requirement, as is visible in the previous section.
There is no need for a GUI. The solution must be designed to be used as an API service.
Solution should be used by multiple HTTP clients.
Tools that are practical for building web APIs are a good choice. This includes all popular libraries and frameworks used in web application development.
The decision has been made to utilize the Nest.js framework, based on the requirements and the development team's expertise.
To begin with the technical solution, the code architecture should be chosen. The goal is to apply general conventions and rules that best fit the requirements.
For the complete application, the MVC pattern has been chosen.
In the integration part, modules are loosely coupled, with the TestClientsModule depending on the TestBasicDataModule, TestEmailDataModule, and TestFinanceDataModule.
The responsibilities include CSV generation and process coordination, generating basic data, generating email data, and generating finance data, respectively.
To successfully generate country-specific names and addresses, the 'faker' library is utilized, with localization included.
For credit card generation, an open-source BIN list is utilized, and the Luhn checksum is respected.
Finally, for temporary email services, Temp Mail is utilized.
The API is tested with various inputs based on countries and customer counts. It is ensured that all basic data is correct.
Various independent services are utilized to check do generated credit cards satisfy Luhn check, country and payment network.
With decisions which Software Development option will be utilized, and which business problems will be solved, requirements are prepared.
Some programming languages, frameworks and tools are more suited to certain problem domains than others.
Software solution is built, configured and integrated in this phase.
The final step is testing the integrated solution to make sure it works correctly and that the business improvement goal is achieved.
Follow the software development process described in a case study on the development of 'Zuma Level Designer'.
Read about all topics, from understanding the benefits of software and its areas of usage to software planning and development.
Explore the technical aspects of software development on our blog. It offers insights into various coding techniques.
Let us know if we can improve the description for your business case, and if you are interested in exploring cooperation options for your project.