• Stars
    star
    227
  • Rank 175,861 (Top 4 %)
  • Language
    Kotlin
  • Created over 7 years ago
  • Updated 5 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A reference implementation of Mifos platform wallet and payment capabilities

Mobile Wallet

Mobile Wallet is an Android-based framework for mobile wallets based on top of Fineract. The app follows clean architecture and contains a core library module that can be used as a dependency in any other wallet based project. It is developed at MIFOS together with a global community.

Development Chat
Mobile-Wallet CI[Master/Dev] Join the chat at https://gitter.im/openMF/mobile-wallet

How to Contribute

Thank you for your interest in contributing to the Mobile Wallet project by Mifos! We welcome all contributions and encourage you to follow these guidelines to ensure a smooth and efficient collaboration process.

The issues should be raised via the GitHub issue tracker. For Issue tracker guidelines please click here. All fixes should be proposed via pull requests. For pull request guidelines please click here. For commit style guidelines please click here.

Branch Policy

We have the following branches :

  • dev All the contributions should be pushed to this branch. If you're making a contribution, you are supposed to make a pull request to dev. Please make sure it passes a build check on Travis.

    It is advisable to clone only the development branch using the following command:

    git clone -b <branch> <remote_repo>

    With Git 1.7.10 and later, add --single-branch to prevent fetching of all branches. Example, with development branch:

    git clone -b dev --single-branch https://github.com/username/mobile-wallet.git

  • master The master branch contains all the stable and bug-free working code. The development branch once complete will be merged with this branch.

Demo credentials

Fineract Instance: demo.mifos.io username: demoUser123 password: password

Development Setup

Before you begin, you should have already downloaded the Android Studio SDK and set it up correctly. You can find a guide on how to do this here: Setting up Android Studio.

  1. Fork the Git Repository

    Forking the repository is the first step to start contributing. Click on the "Fork" button in the top right corner of the Mobile Wallet (Mifos Pay) repository to create your own fork.

    image

    Forking creates a copy of the project under your GitHub account. This enables you to work on changes without affecting the original repository directly.

  2. Clone the Forked Repository

    Once you have forked the repository, you need to clone it to your local development environment. Open a terminal or Git Bash and use the following command:

    git clone https://github.com/yourUsername/mobile-wallet.git

    Replace yourUsername with your actual GitHub username. Cloning creates a local copy of the repository on your machine, allowing you to make changes and contributions.

  3. Working Locally on Your Cloned Repository

    After cloning, navigate to the project directory using the terminal or Git Bash.

    Before making any changes, create a new branch dedicated to the feature or bug fix you'll be working on:

    git checkout -b "new-branch-name"

    Ensure that new-branch-name reflects the purpose of your changes (e.g., add-payment-feature or fix-bug-123).

    Make the necessary changes to the files to address the issue you're working on. Once you're done, you will be ready to proceed with verifying and committing your changes.

  4. Perform a Gradle Check

All your pull requests must pass the CI build only then, it will be allowed to merge. Sometimes, when the build doesn't pass you can use these commands in your local terminal and check for the errors,

For Mac OS, you can use the following commands:

  • ./gradlew check quality checks on your project’s code using Checkstyle and generates reports from these checks.
  • ./gradlew spotlessApply an check and apply formatting to any plain-text file.
  • ./gradlew build provides a command line to execute build script.

For Windows, you can use the following commands:

  • gradlew check quality checks on your project’s code using Checkstyle and generates reports from these checks.
  • gradlew spotlessApply an check and apply formatting to any plain-text file.
  • gradlew build provides a command line to execute build script.

Committing Your Changes

When you've finished making your changes and have tested them locally, it's time to commit your work:

  1. Stage Changes

    Use the following command to stage all changes:

    git add .

    This adds all modified and new files to the staging area, preparing them for the commit.

  2. Commit Changes

    Commit your changes with a meaningful commit message that describes the purpose of your changes:

    git commit -m "Your commit message goes here"

    A good commit message is concise and provides enough context about the changes made. Mifos follows its own commit style guidelines that you must follow. Learn more about it here.

  3. Push Changes

    Push your changes to your forked repository on GitHub:

    git push origin new-branch-name

    Replace new-branch-name with the name of the branch you created earlier.

Making a Pull Request

Once your changes are pushed to your forked repository, you can initiate a pull request to merge your changes into the main project:

  1. Navigate to the Mobile Wallet (Mifos Pay) repository on GitHub.
  2. Click on the "Pull Requests" tab and then click "New Pull Request."

image

  1. Ensure the base repository is set to "openMF/mobile-wallet" and the base branch is the main development branch dev.
  2. Set the compare repository to your forked repository and the compare branch to the branch you just created with your changes (e.g., in my case, the head repository was set to “rchtgpt/mobile-wallet” and the comparison branch was kotlin-migration-common.
  3. Fill out the pull request template, providing a clear description of your changes, why they are necessary, and any relevant information for the reviewers.
  4. Click "Create Pull Request" to submit your changes for review.

Squashing Your Commits

It is common for pull requests to undergo multiple rounds of review before being merged. To keep the Git history clean and organized, you should always squash your commits before finalizing the merge. Here's how you can do it:

  1. Squash your commits:

    git rebase -i HEAD~x

    Replace x with the number of commits you want to squash. An interactive rebase will open, allowing you to choose how to combine the commits. Change pick to squash (or simply s) for all but the topmost commit. Save and exit the editor.

  2. Amend the commit message if needed.

    git commit --amend
  3. Force push the changes to your forked repository:

    git push --force origin your-branch-name

    Please note that force pushing rewrites the Git history, so use it with caution.

Solving Merge Conflicts

In some cases, your pull request might encounter merge conflicts when the changes cannot be automatically merged with the main branch. To resolve merge conflicts:

  1. Update your local branch with the latest changes from the main repository:

    git fetch upstream
    git checkout your-branch-name
    git rebase upstream/master
  2. Git will pause when encountering conflicts. Open the affected files, resolve the conflicts manually, and save the changes.

  3. After resolving all conflicts, stage the changes and continue with the rebase:

    git add .
    git rebase --continue
  4. Finally, force push the changes to your forked repository:

    git push --force origin your-branch-name
    

Your pull request will be updated with the resolved conflicts, and the reviewers can proceed with the review process. Again, don’t forget to squash your commits.

Conclusion

By following these contribution guidelines, you're all set to start contributing to the Mobile Wallet (Mifos Pay) project. We appreciate your efforts and look forward to your valuable contributions. Happy coding!

Instructions to get the latest APK

To get the latest apk fom the Github actions artifacts, follow these steps:

  1. Navigate to the Actions tab of this repository.
  2. Click the latest workflow from the workflows list.
  3. Scroll down to the Artifacts section and click the mobile-wallet hyperlink.
  4. After successful download, extract the zip file to your preferred location.

Wiki

https://github.com/openMF/mobile-wallet/wiki

Screenshots

Click here for more screenshots

More Repositories

1

community-app

This was the former default web application built on top of the Apache Fineract platform. It's now deprecated and replaced by the the Mifos X Web App (https://github.com/openMF/web-app maintained by the Mifos Initiative as a reference solution for financial inclusion. It is a Single-Page App (SPA) written in web standard technologies.
HTML
313
star
2

mifos-mobile

Repository for the Mifos Mobile Banking App for clients
Kotlin
273
star
3

web-app

Mifos X Web App is the revamped version of the Mifos X Community App built on top of the Fineract Platform leveraging the popular Angular framework.
TypeScript
230
star
4

mifosx

NOW DEPRECATED. All development occurs on Apache Fineract (https://github.com/apache/incubator-fineract).
Java
213
star
5

android-client

An android client for the MifosX platform
Kotlin
196
star
6

mifos-mobile-cn

Client-facing app on top of Apache Fineract CN
Kotlin
38
star
7

web-self-service-app

Web app for clients to access and directly interact with their own accounts using Apache Fineract Self-Service APIs
HTML
33
star
8

fineract-pentaho

Pentaho Reporting Plugin for Apache Fineract
Java
26
star
9

message-gateway

Message gateway is a push messaging service for Fineract provider that makes it simple to push notifcations through SMS and email
Java
25
star
10

payment-hub

Repository for the payment hub for integration with external payment platforms like Mojaloop
Java
19
star
11

digital-bank-ui

Digital Bank user interface for staff on top of Fineract CN
TypeScript
18
star
12

ppi-vision

Mobile based PPI survey tool powered by Google's on device machine learning SDK, MLKit.
Jupyter Notebook
18
star
13

online-banking

TypeScript
17
star
14

Fineract-CN-mobile

DEPRECATED project - Check the Apache fineract-cn-mobile project instead
Java
17
star
15

mifos-passcode

Library for passcode generation on different mobile apps.
Kotlin
17
star
16

DataImportTool

An Excel-based tool created using Apache POI to import your existing data into the MifosX platform through REST calls.
Java
16
star
17

fineract-client

Mifos Fineract Client is a Java based library that provides a simple interface to interact with the Apache Fineract 1.x Platform APIs
Java
14
star
18

open-banking-app

Stand-alone application for third-party fintechs and PISPs to build and demonstrate open banking use cases.
Kotlin
13
star
19

mifosx-community-apps

A place for putting client applications built on top of mifosx platform.
JavaScript
12
star
20

fineract-cn-containers

Repository to house the Docker and Kubernetes scripts for containerization.
Shell
11
star
21

fiinwallet

TypeScript
10
star
22

mifos-chatbot

Chatbot and adapter to Apache Fineract
Java
9
star
23

openbanking-adapter

API Gateway adapter
Java
8
star
24

mojafos

A Deployable Package for Mifos/Fineract, Payment Hub EE, and Mojaloop (Mojafos)
Shell
7
star
25

online-banking-app

Repository for the online banking app powered by Mifos X, replacing the deprecated Web Self Service app repository (Online Banking App 2.0)
TypeScript
7
star
26

fineract-android-sdk

This is architecture repository for mifos-android-sdk
Kotlin
7
star
27

mifos-documentation

Config files, postman queries, documentation for Mifos.io lab environment
Shell
7
star
28

mobileapps.github.io

7
star
29

ph-ee-env-labs

Actual configurations of lab environment, BPMN flows, and Helm Charts
Makefile
6
star
30

openbanking-tpp-server

Third party party banking application server
Java
6
star
31

mifos-x-containers

Quick Deployment tool for having a running, non persistent Mifos X environment for demonstration purpose
Shell
6
star
32

mifosx-docker

Mifos X on Docker Compose
Shell
6
star
33

Mifos-Mockups

Repository for the Mockups Prototypes of Mifos Community Projects
5
star
34

ph-ee-operations-app

Operations web application
Java
5
star
35

ph-ee-operations-web

Operations web application front-end
TypeScript
5
star
36

ussd-app

Repository for USSD interface for clients developed by the community
Java
5
star
37

move-to-mifosx

A migration tool to migrate data from Mifos to MifosX
Shell
5
star
38

stellar-connector

Java
5
star
39

ph-ee-connector-mojaloop-java

Java-based Mojaloop connector microservice
Java
5
star
40

ph-ee-connector-common

Shared artifacts/ common code between Java-based connectors.
Java
5
star
41

mifosx-admin

Utility project that helps sysadmins with the maintenance of multi-tenant MifosX installation
Java
5
star
42

mifos-payment-gateway

Repository for Mifos gateway for mobile money and digital payments integration
Java
5
star
43

ph-ee-connector-gsma-mm

Connector for Payment Hub EE for GSMA Mobile Money API
Java
4
star
44

payment-gateway

Mifos payment gateway for integrating Fineract and Fineract CN with external digital payment channels and mobile money providers.
4
star
45

ph-ee-connector-ams-mifos

Account Management System connector microservice for Mifos.
Java
4
star
46

payment-hub-ee

Payment Hub Enterprise Edition gateway for integration to real-time payment systems. Source code at https://bit.ly/ph-ee
4
star
47

ph-ee-importer-es

Microservice which consumes Kafka and sends all Zeebe-related data to elastic search.
Java
4
star
48

ph-ee-env-template

Environment templates for payment hub-ee
Python
4
star
49

ph-ee-connector-channel

Channel connector microservice
Java
4
star
50

ph-ee-zeebe-ops

Java
3
star
51

ph-ee-identity-provider

Java
3
star
52

ph-ee-connector-bulk

closed loop bulk connector
Java
3
star
53

chatbot

Version 2.0 of the Mifos chatbot and adapter for Fineract
Java
3
star
54

pisp-app

Repository for app for third party payment initiation use cases (PISP, Open Banking, 3PPI)
Kotlin
3
star
55

ph-ee-connector-mpesa

Java
3
star
56

ph-ee-importer-rdbms

Microservice which consumes Kafka and feeds the off-site RDMS with business data taken from the flows.
Java
3
star
57

mobile-money-module

Module for integration of mobile money with the Apache Fineract platform.
CSS
3
star
58

ph-ee-bill-pay

Java
3
star
59

mifos-ussd

TypeScript
3
star
60

mifos-gazelle

Mifos-Gazelle is a DPI as a Service offering a Deployable Package for MifosX/Fineract, Payment Hub EE, and Mojaloop.
Shell
2
star
61

ph-ee-integration-test

An integration test microservice for payment hub
Java
2
star
62

ph-ee-bulk-processor

Java
2
star
63

egalite-android-app

Java
2
star
64

openbanking-api-gateway

API Gateway publisher, store
Java
2
star
65

ph-ee-connector-ams-pesa

Java
2
star
66

ph-ee-notifications

Java
2
star
67

openbanking-tpp-client

Third Party Application Client
CSS
2
star
68

pixiepay

Java
2
star
69

webapp-microfrontends

TypeScript
2
star
70

fineract-cn-otp

Fineract 1.X or CN - One Time Password
Java
2
star
71

mifosX-Android-PGS_v2

Spike of Android Client for the Pay as you go Solar Module
Java
2
star
72

fineract-cn-terraform

Terraform scripts for Fineract CN
HCL
2
star
73

message-consumer

Java
2
star
74

mifos-ui-library

Library to house common UI components used across Mifos mobile applications.
Kotlin
2
star
75

ph-ee-connector-ams-dpg

DPGA-compliant version of AMS connector module for Payment Hub EE including Netflix Conductor as orchestration engine for microservices.
Java
2
star
76

selfservice-plugin

Self Service Plugin for Apache Fineract
Java
2
star
77

ph-ee-dpg-core

Java
2
star
78

openmf.github.io

HTML
1
star
79

mock-als-oracle

Mock Oracle for use with Mojaloop and payment hub. Query parties by MSISDN
JavaScript
1
star
80

ph-ee-connector-ams-paygops

Java
1
star
81

upi-java-sdk

1
star
82

mifos-framework

An Application Framework for Digital Financial Inclusion.
1
star
83

mifosX-PGS_v2

Spike of the Pay as you go Solar Module in MifosX
Java
1
star
84

mifosx-packager

Repo for packaging and template files, e.g. Debian, Packer
Shell
1
star
85

ph-ee-exporter

Zeebe exporter component which sends all data to Kafka
Java
1
star
86

egalite-web-service

Java
1
star
87

ppi-uploader

Ability to upload PPI surveys to Mifos X
Java
1
star
88

openbanking-fpp-client

First Party Application Client
CSS
1
star
89

ph-ee-connector-channel-dpg

DPGA-compliant version of channel connector for PH-EE
Java
1
star
90

mifosx-e2e-testing

E2E automated testing of Fineract platform and community-app user interface based on selenium webdriver
Java
1
star
91

moov-devcon

1
star
92

ph-ee-id-account-validator-impl

account validator implementations for PHEE Id mapper
Java
1
star
93

ph-ee-connector-mock-payment-schema

Java
1
star
94

ph-ee-identity-account-mapper

Java
1
star
95

qr-reader

JavaScript
1
star
96

ph-ee-vouchers

Voucher management system
Java
1
star
97

ph-ee-nats-importer-rdbms

Microservice which consumes NATS and feeds the off-site RDMS with business data taken from the flows.
Java
1
star
98

zulu-ubuntu-base-pentaho-plugin

Dockerfile
1
star
99

mifos-operators

Mifos Operators
Java
1
star
100

scorecard-ai

JavaScript
1
star