Intro
Hello Everyone,
In this Blog, I will tell you about my experience at C4GT's Dedicated Mentoring Program 2024. So, let us get started with the first question,
What is C4GT?
C4GT stands for Code for GovTech. It provides an opportunity for undergraduate students to work on a real Digital Public Goods project, which is in production. Not the dummy one. To know more about what is DPG? Please follow this link. The public goods can now be accessed digitally.
Now, let us understand What is Mojaloop Foundation. What's the mission and vision of this company? And What problems is it solving? And Who are its target users?
What is the Mojaloop Foundation?
To make it short, in Swahili language Moja means One and the meaning of loop is...google it. So, yeah, mojaloop creates a loop that connects DFSP(Banks), Mobile Money Operators, and much more. Why loop? Because, if there's no loop the mesh architecture will get created and ultimately the complexity will rise, which no one wants to witness. For another question use LLM models or google it. If you're curious.
What problem is being solved by Mojaloop?
Mojaloop targets unbanked individuals. The goal is Financial Inclusion. I hope this answers some other questions too.
Now, let us dive into the projects I worked on. Contributors, Assemble. If you're interested in the concept of Mojaloop and want to contribute to Mojaloop docs, architectures, or code. Pay Attention.
Following are my tasks and my experience with them. If you want to go in-depth What I learned from that task? I also have documented them here.
My First Task
My first task was to bring down the time to generate the final report, which was 150s earlier in core-test-harness the repository(What is Core-Test-Harness Repo?) and I successfully brought it down to 20 to 50 seconds after making the following changes.
Everyone, I manipulated a few files in, the directory.
And a few changes in the Dockerfile.
The changes were minimal but the efforts to reach the root cause were time-consuming. But, with the help of my Mentor, I successfully did this task.
A question might arise in your mind, Devarsh, What is Core-Test-Harness?
Everyone, Core-Test-Harness is a tool that can be used by the DFSPs(say Banks for now) and developers. DFSP deploys this core-test-harness repository to know how the transfers are being done and how the APIs are playing a major role during the transactions. Developers use CTH if a new feature is introduced or a new API is introduced. So, for the cross-checking purpose also. The CTH is used. Because, in CTH we have TTK(Testing Toolkit).
Watch this video to see, what changes I have made: Drive Link
My Second Task
Everyone, during the tenure of my internship I explored a lot of repositories at mojaloop which deepened my understanding of mojaloop and its vision to add value to society. Talking about the second task,
I was responsible for adding the test coverage to the Mojaloop Repository and I have added it to a few repositories like management-api, experience-api, and mcm-client. I was supposed to add the coverage summary to the management and experience API only. Because, this coverage part was essential and I learned how to add the test coverage using the jest framework, with the guidance of my other mentor I added coverage to the mcm-client repo too.
What was this contribution was all about?
Everyone, this coverage I have added just increases the code quality. So that, the code will be leveraged in the production if it passes the 90% coverage-summary threshold.
What is this Management and Experience API repository all about?
Everyone, these repositories are the subsets of a project called Payment Manager.
Simply, if I speak in language A and you speak in Language B, we both will need a mediator, right? All, that mediator/translator is “Payment Manager” and this Management-API manages the security aspect, whereas the Experience-API manages the enhancement of user experience I was responsible for introducing the test-coverage-summary using a jest framework and making the code quality good, so that, it will pass the 90% threshold. Refer to the following.
My Third Task
My third task is a little bit challenging for me. Here, I am responsible for configuring the Kubernetes in such a way that all the requests will reach the API endpoint. The whole project is in here, a miniloop (the name of the repository).
Miniloop is the same as the Core-Test-Harness repository. Here, everything is deployed on a Kubernetes environment.
My Fourth Task
My fourth Task is to work on the IaC section of the Mojaloop. We didn’t have more conversations on this but. I am excited to start working on this section.
My Fifth Task
My fifth task is to add the new API in the core test harness itself. Yes, that’s it. But it’s not as easy as it sounds. Refer this diagram(https://docs.mojaloop.io/technical/transaction-requests-service/)
As mentioned in the diagram. I was responsible for adding the Transaction-Request-Service to the current architecture, which is configured for payer and payee transfers. So, I am responsible for adding this new section named Transaction-Request-Service.
If you are interested in understanding What is Transaction Request Service, please go through the above link itself.
My Sixth Task
My Sixth Task is to integrate the Finance Portal with the Core Test Harness.
What is a Finance Portal(FP)?
Everyone, the FP shows the clients a few this on their screen like, What was the last transaction done? What is the TransactionId of that transaction? What is the Payee-id, and Payer-id associated with that TransactionID? and more other information.
And as discussed earlier we know what is Core-Test-Harness.
Why Integrate it, Core-Test Harness?
If the FP portal is attached to CTH, we can see the complete simulation by just running a command or two. Let us try to understand, suppose, we had done the transaction in the TTK simulation, and the money is transferred from one bank(DFSP) to another, and on the other side, we’ll be seeing the update on the finance portal. That’s why we need to integrate the Finance Portal into the Core-Test-Harness.
Follow this Video to understand, how CTH and FP work after Integration: Drive Link.
Why I am sharing all this with you?
Everyone, I consider myself very fortunate that we 100(approx.) students got selected among 2600(approx.) Students and I got the chance to work with very wonderful organisation Mojaloop, where DevOps Tools and Technologies are used in depth.
Also, most of my connections are in the DevOps Field. I thought I to share this blog with you all. I have made this blog very in-depth so that you get a thorough idea of what mojaloop is by reading this Blog only and can contribute to Mojaloop Foundation GitHub Repositories and Enhance your profile. All the best with your contributions.
Outro
Bas! Bye Bye..