Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DMP 2024]: Mojafos Version 2 - DaaS providing deployable package of Mifos/Fineract, Mojaloop and Payment Hub EE DaaS #24

Open
DavidH-1 opened this issue Apr 13, 2024 · 7 comments

Comments

@DavidH-1
Copy link
Collaborator

Ticket Contents

Description

Mifos & Fineract integrated with Mojaloop via Payment Hub EE provides a end to end open source architecture for a building a complete digital financial services solution including managing wallets and stores of value In Mifos and Fineract to orchestrating and initiating real-time payments via the Mojaloop APIs throught Payment Hub EE orchestration engine.

However, it takes significant time and effort to deploy and install each of these individual components which are comprised various microservices and libraries and dependencies. This presents a steep barrier for fintechs and financial institutions to evaluate and discover the potential of this powerful stack. This project aims to maintain and enhance this deployable package, Mojafos. A major focus in this second year will be storyboards to help an individual developer rapidly deploy this end to end environment. Each of the various individual solutions/projects have a number of different options available to ease deployment into the cloud including infrastructure as code, docker images, helm charts, terraform scripts, etc.

Recently Carnegie India published a white paper outlining a new approach for rapid global adoption of Digital Public Infrastructure (DPI) - DPI as a Service or DaaS model. Mojafos fits squarely into that deployment approach as it bundles together multiple DPGs into a deployable package that streamlines the deployment process.

Goals & Mid-Point Milestone

Goals

  • [1] [Update Mojafos to deploy latest version of Mojaloop]
  • [2] [Update Mojafos to deploy latest version of Fineract]
  • [3] [Update Mojafos to deploy latest version of Mifos X Web App ]
  • [4] [Update Mojafos to deploy latest version of Payment Hub EE]
  • [5] [Improved resource consumption of Mojafos Deployable Package
  • [6] [With upgraded versions and improved consumption of resources, Mojafos should be closer to production-quality]

Setup/Installation

https://github.com/openMF/mojafos/blob/master/README.md

Expected Outcome

In 2023, GSOC inten, Elijah Okello created a deployable package, Mojafos, that incorporates the various components of the end to end stack - Mifos/Fineract, Mojaloop, Payment Hub EE, Mifos Channel App (mobile wallet/mobile banking) Initial deployment would target Azure but a bonus goal would be to make it cloud-agnostic.

Expected outcome for the second version of Mojafos is to continue optimizing its deployability, upgrade to current stable versions of the DPGs contained, optimize resource consumption and extending the storyboard of use cases that can be supported. The initial version was only a proof of concept so the second version would be intended for production-level deployments, aligning this with the vision of DPI as a Service (DaaS)

Latest stable release of Fineract core banking system (1.9 or current)
Latest stable version of Mojaloop (vNext)
Latest stable release of Mifos X Web App (23.12 or later)
Latest upstream version of Payment Hub EE
Storyboard/Cookbooks for standard use cases in the form of BPMN diagrams.

P2P Transfer
Merchant payment via QR code
Merchant Request to Pay
G2P Payment into Mifos Mobile Wallet
P2G Payment from Account in Fineract
PISP Payment
Applicants are also welcome to inputting their own ideas on how to improve and enhance.

Acceptance Criteria

No response

Implementation Details

Helm Chart for Fineract deployment - https://github.com/fynarfin/fineract-env/tree/master/helm/fineractConnect your Github account

Helm Charts for Payment Hub EE deployment - https://github.com/openMF/ph-ee-env-labs/tree/master/helmConnect your Github account

Docker Compose for Mifos - (Fineract Back-End + Web App) - GitHub - openMF/mifos-x-containers: Quick Deployment tool for having a running, non persistent Mifos X environment for demonstration purpose

Docker Hub Image of Fineract - Docker

Docker

Fineract Technical Documentation - Fineract Platform Documentation

Miniloop - GitHub - mojaloop/mini-loop: Deployment utilities for Mojaloop

Payment Hub EE - Welcome - Mifos Payment Hub EE

Lab Environment Overview - Lab environment

Mockups/Wireframes

No response

Product Name

Mojafos

Organisation Name

The Mifos Initiative

Domain

Financial Inclusion

Tech Skills Needed

AWS, DevOps, Java, Microservices, Performance Improvement, Spring Boot

Mentor(s)

@elijah0kello
@tdaly61

Category

Backend, CI/CD, Delpoyment, Performance Improvement

@AieshaShetty
Copy link

Hi @elijah0kello @tdaly61, I would like to work on this project. My tech stack includes core Java, spring boot, JPA. Is there any smaller issue to work on this first?

@DavidH-1
Copy link
Collaborator Author

DavidH-1 commented Apr 22, 2024 via email

@nitishmalang
Copy link

nitishmalang commented Apr 22, 2024

Hi @elijah0kello @tdaly61 My self Nitish Malang, I had successfully completed GSoC 23, where I worked on the project "Memory allocation in facet redundancy removal in dingo" for GeomScale's Python package dingo, I have gained valuable insights into optimizing memory allocation and improving runtime performance. This project aimed to enhance the preprocessing of metabolic networks with dingo, significantly improving efficiency and allowing for the handling of larger networks in Systems Biology.

In addition to my GSoC project, I had also done some personal projects, including "Streamlining Continuous Integration and Deployment with Jenkins" and "Automating Infrastructure: An Exploration of Ansible Playbooks in Action". I have a strong foundation in Linux and extensive experience with Docker, Kubernetes, Terraform, GitHub Actions, and CircleCI. Currently, I am diving deeper into Kubernetes & learning Golang

Apart from that I have also been selected for summer of bitcoin this year
With a passion for DevOps practices and a track record of delivering high-quality projects, I am eager to contribute in this project

@AbhimanyuSamagra
Copy link

Do not ask process related questions about how to apply and who to contact in the above ticket. The only questions allowed are about technical aspects of the project itself. If you want help with the process, you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.

@tdaly61
Copy link
Collaborator

tdaly61 commented Apr 29, 2024

Hi @nitishmalang Can I suggest you join the c4gt-mojafos-2024 channel on the Mifos slack

@Abhinavcode13
Copy link
Collaborator

Abhinavcode13 commented Jun 16, 2024

Weekly Learnings & Updates (To be filled by contributor)

Week 1

  • Set up Mojafos include Mifos, Fineract, Mojaloop and Payment Hub EE
  • Fixed bugs in deployment scripts
  • Learned kubectl commands for better Kubernetes management
  • Contributed to Mojafos with PRs for bug fixes and enhancements
    • Fix 1 - Added TLS secret
    • Fix 2 - Added monitoring instruments for Mojafos

Week 2

  • Successfully deployed the Mojafos system.
  • Learned about Zeebe workflow engine.
  • Identified and resolved the bugs encountered during the deployment of Mojafos (demo purpose version).
  • Initiated the deployment of the Mojaloop connector.

Week 3

  • Researched the issue related to the deployment of the Mojaloop connector.
  • Gone through the documentation of the Mojaloop and Payment Hub EE deployment.
  • Documented the process for setting up the Mojaloop environment using Helm charts.
  • Learned about Helm charts exclusively for deployment purposes.

Week 4

  • Started working on the core concept of reducing the Mojafos footprint to 8gb/16gb.
  • Worked on the GAZ-2 Jira ticket
  • Learned about the Yaml files for the helm charts values to optimize the resources.
  • Fixed some minor bugs in the deployment bash script.
  • Updating run.sh to show the correct usage of the Mojafos

Week 5

  • Started working on the Jira Ticket GAZ-3 to reflect latest features in accordance with ShowUsage function.
  • Updating run.sh help flags and usage messages to match the latest features in the README
  • Pushed the latest changes to #51 and done with the GAZ-2 Jira ticket (Week 4).

Week 6

  • Analyzing the current infrastructure charts for MySQL, Kafka, and other services to identify duplication.
  • PHEE Mifos and Mojaloop can utilize the same instances of MySQL, Kafka, etc to reduce the memory footprint
  • Tune configurations for each service (MySQL, Kafka) to lower memory usage.

Week 7

  • Identify the resource requirements (CPU and memory) for each component of Mifos/vNext and PHEE.
  • Review the default values.yaml provided in the Helm charts for these applications.
  • Started working on critical components to have higher memory allocations while reducing memory for less critical ones.

Week 8

@tdaly61
Copy link
Collaborator

tdaly61 commented Jul 4, 2024

Weekly Goals ( updated 4th July by T Daly / Elijah Okello )

Week 1

  • setup Mojafos from main github branch
  • start to understand component pieces Mifos/Fineract, Mojaloop vNext and Payment Hub (PHEE)
  • look at and try and deploy the PHEE Mojaloop connector using Mojaloop vNext

Week 2

  • deployment and reporting of how mojaloop connector was deployed in week Configure Renovate #1
  • attempt to run mojaloop connector to Mojaloop vNext Beta1 (will require re-deploy of Mojafos using master branch)

Week 3

Week 4

Week 5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants