From d1af1bc2ec4dec1ca44e5f84b1ef380bb0fbf124 Mon Sep 17 00:00:00 2001 From: Pronay sarker Date: Thu, 26 Dec 2024 14:49:14 +0600 Subject: [PATCH] readme and wiki update update readme m readme update m b readme and wiki update b readme update update readme --- .github/PULL_REQUEST_TEMPLATE.md | 12 +- .github/workflows/android.yml | 31 ---- .github/workflows/pr-check-android.yml | 24 +++ CODE_OF_CONDUCT.md | 134 ++++++++++++++++ Contributing.md | 204 +++++++++++++++++++++++-- README.md | 132 +++++----------- 6 files changed, 391 insertions(+), 146 deletions(-) delete mode 100644 .github/workflows/android.yml create mode 100644 CODE_OF_CONDUCT.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index fdfd2dc68d3..056ca13a53e 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,11 +1,15 @@ -Fixes #Issue_Number +Fixes - [Jira-#Issue_Number](https://mifosforge.jira.com/browse/MIFOSAC-) + +Didn't create a Jira ticket, click [here](https://mifosforge.jira.com/jira/software/c/projects/MIFOSAC/issues/) to create new. Please Add Screenshots If there are any UI changes. -Please make sure these boxes are checked before submitting your pull request - thanks! +| Before | After | +|--------------------------------------------|----------------------------------------| +| | | -- [ ] Apply the `MifosStyle.xml` style template to your code in Android Studio. +Please make sure these boxes are checked before submitting your pull request - thanks! -- [ ] Run the unit tests with `./gradlew check` to make sure you didn't break anything +- [ ] Run the static analysis check `./gradlew check` or `ci-prepush.sh` to make sure you didn't break anything - [ ] If you have multiple commits please combine them into one commit by squashing them. \ No newline at end of file diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml deleted file mode 100644 index e73d0b1799c..00000000000 --- a/.github/workflows/android.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Android Client CI -on: - push: - pull_request: - branches: - - master - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - # Set up JDK 17 - - name: Set up JDK 17 - uses: actions/setup-java@v1 - with: - java-version: 17 - - # Build with Gradle - - name: Build with Gradle - run: chmod +x gradlew && ./gradlew assembleDebug - - # Upload APK - - name: Upload APK - uses: actions/upload-artifact@v4 - with: - # Artifact name - name: android-client-app - # File path describing what artifact to upload - path: mifosng-android/build/outputs/apk/debug/mifosng-android-debug.apk \ No newline at end of file diff --git a/.github/workflows/pr-check-android.yml b/.github/workflows/pr-check-android.yml index bd8c878249d..8be07dba74a 100644 --- a/.github/workflows/pr-check-android.yml +++ b/.github/workflows/pr-check-android.yml @@ -81,3 +81,27 @@ jobs: secrets: inherit with: android_package_name: 'mifosng-android' # <-- Change Your Android Package Name + + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + # Set up JDK 17 + - name: Set up JDK 17 + uses: actions/setup-java@v1 + with: + java-version: 17 + + # Build with Gradle + - name: Build with Gradle + run: chmod +x gradlew && ./gradlew assembleDebug + + # Upload APK + - name: Upload APK + uses: actions/upload-artifact@v4 + with: + # Artifact name + name: android-client-app + # File path describing what artifact to upload + path: mifosng-android/build/outputs/apk/debug/mifosng-android-debug.apk \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..a3d2b20601d --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,134 @@ + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official email address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[Slack](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA). + +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations \ No newline at end of file diff --git a/Contributing.md b/Contributing.md index 81124e39e2f..519e4329bf9 100644 --- a/Contributing.md +++ b/Contributing.md @@ -1,20 +1,194 @@ -# Contributing: +# Contributing to Android Client -### Best Practices for reporting or requesting for Issues/Enhancements: - - Follow the Issue Template while creating the issue. - - Include Screenshots if any (specially for UI related issues) - - For UI enhancements or workflows, include mockups to get a clear idea. +Welcome to the Android Client contributing guide. This comprehensive document outlines how to contribute effectively to improve the Self Service Android Application, from reporting issues to submitting code changes. -### Best Practices for assigning an issue: -- If you would like to work on an issue, inform in the issue ticket by commenting on it. -- Please be sure that you are able to reproduce the issue, before working on it. If not, please ask for clarification by commenting or asking the issue creator. +The [Open Source Guides](https://opensource.guide/) website has a collection of resources for individuals, communities, and companies who want to learn how to run and contribute to an open source project. Contributors and people new to open source alike will find the following guides especially useful: -Note: Please do not work on issues which is already being worked on by another contributor. We don't encourage creating multiple pull requests for the same issue. Also, please allow the assigned person some days to work on the issue ( The time might vary depending on the difficulty). If there is no progress after the deadline, please comment on the issue asking the contributor whether he/she is still working on it. If there is no reply, then feel free to work on the issue. +- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) +- [Building Welcoming Communities](https://opensource.guide/building-community/) +## Code of Conduct -### Best Practices to send Pull Requests: - - Follow the Pull request template. - - Commit messages should follow this template: `Fix # - ` - - Squash all your commits to a single commit. - - Create new branch before adding and commiting your changes ( This allows you to send multiple Pull Requests ) - \ No newline at end of file +Mifos has adopted a Code of Conduct that we expect project participants to adhere to. Please read [the full text](CODE_OF_CONDUCT.md) so that you can understand what actions will and will not be tolerated. + +> \[!Note] +> **We're moving to Jira for issue tracking. Please use [Jira](https://mifosforge.jira.com/jira/software/c/projects/MIFOSAC/issues/) for issue tracking.** +> **And Join our [slack](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA) channel `android-client` to discuss all things about Android Client development. Please do not cross post your messages in multiple channels and always ask your question in the appropriate channel.** + +## Get Involved + +There are many ways to contribute to Android Client, and many of them do not involve writing any code. Here's a few ideas to get started: + +- Simply start using Android Client. Go through the [Getting Started](https://github.com/openMF/android-client/wiki) guide. Does everything work as expected? If not, we're always looking for improvements. Let us know by [opening an issue](#issues). +- Look through the [open issues](https://github.com/openMF/android-client/issues). Provide workarounds, ask for clarification, or suggest labels. Help [triage issues](#triaging-issues-and-pull-requests). +- If you find an issue you would like to fix, [open a pull request](#pull-requests). Issues tagged as [_Good first issue_](https://github.com/openMF/android-client/labels/good%20first%20issue) are a good place to get started. +- Read through the [Wiki](https://github.com/openMF/android-client/wiki). If you find anything that is confusing or can be improved, you can click "Edit this page" at the top of most page, which takes you to the GitHub interface to make and propose changes. + +Contributions are very welcome. If you think you need help planning your contribution, please ping us on Slack at [#android-client](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA) and let us know you are looking for a bit of help. + +### Join our Slack Channel & Jira + +We have the [`#android-client`](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA) channel on [Slack](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA) to discuss all things about Android Client development. You can also be of great help by helping other users in the [`#mobile](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA) channel. +also join [Jira](https://mifosforge.jira.com/jira/software/c/projects/MIFOSAC/issues/) for issue tracking. + +[![Slack](https://img.shields.io/badge/Slack-4A154B?style=flat-square&logo=slack&logoColor=white)](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA) +[![Jira](https://img.shields.io/badge/jira-%230A0FFF.svg?style=flat-square&logo=jira&logoColor=white)](https://mifosforge.jira.com/jira/software/c/projects/MIFOSAC/issues/) + + +### Triaging Issues and Pull Requests + +One great way you can contribute to the project without writing any code is to help triage issues and pull requests as they come in. + +- Ask for more information if you believe the issue does not provide all the details required to solve it. +- Suggest [labels](https://github.com/openMF/android-client/labels) that can help categorize issues. +- Flag issues that are stale or that should be closed. +- Ask for test plans and review code. + +## Our Development Process + +We uses [GitHub](https://github.com/openMF/android-client), [Slack](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA), [Jira](https://mifosforge.jira.com/jira/software/c/projects/MIFOSAC/issues/) for issue tracking and development. The core team will be working directly there. All changes will be public from the beginning. + +All pull requests will be checked by the continuous integration system, GitHub actions. There are unit tests, end-to-end tests, performance tests, style tests, and much more. + +### Branch Organization + +The Android Client project uses the `master` branch as its primary branch. All new features, bug fixes, and updates are introduced through pull requests targeting this branch + +## Issues + +When [opening a new issue](https://mifosforge.jira.com/jira/software/c/projects/MIFOSAC/issues/), always make sure to fill out the issue template. **This step is very important!** Not doing so may result in your issue not being managed in a timely fashion. Don't take this personally if this happens, and feel free to open a new issue once you've gathered all the information required by the template. + +**Please don't use the GitHub issue tracker for questions.** If you have questions about using Android Client, use of our [slack channel](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA), and we will do our best to answer your questions. + +### Bugs + +We use [Jira](https://mifosforge.jira.com/jira/software/c/projects/MOBILE/boards/57) for our public bugs. If you would like to report a problem, take a look around and see if someone already opened an issue about it. If you are certain this is a new, unreported bug, you can submit a [bug report](https://github.com/facebook/docusaurus/issues/new?assignees=&labels=bug%2Cstatus%3A+needs+triage&template=bug.yml). + +- **One issue, one bug:** Please report a single bug per issue. +- **Provide reproduction steps:** List all the steps necessary to reproduce the issue. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort. + +If you're only fixing a bug, it's fine to submit a pull request right away but we still recommend filing an issue detailing what you're fixing. This is helpful in case we don't accept that specific fix but want to keep track of the issue. + +### Feature requests + +If you would like to request a new feature or enhancement but are not yet thinking about opening a pull request, +you can open a ticket on [Jira](https://mifosforge.jira.com/jira/software/c/projects/MIFOSAC/issues/). Alternatively, you can use the [GitHub](https://docusaurus.io/feature-requests) for more casual feature requests and gain enough traction before proposing on Jira. + +### Proposals + +If you intend to make any non-trivial changes to existing implementations, we recommend filing an issue with the [Jira](https://mifosforge.jira.com/jira/software/c/projects/MIFOSAC/issues/). This lets us reach an agreement on your proposal before you put significant effort into it. These types of issues should be rare. + +### Claiming issues + +We have a list of [beginner-friendly issues](https://github.com/openMF/android-client/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to help you get your feet wet in the Android Client codebase and familiar with our contribution process. This is a great place to get started. + +Apart from the `good first issue`, the following labels are also worth looking at: + +- [`help wanted`](https://github.com/openMF/android-client/labels/help%20wanted): if you have specific knowledge in one domain, working on these issues can make your expertise shine. +- [`jira`](https://mifosforge.jira.com/jira/software/c/projects/MOBILE/boards/57): if you are looking for a specific issue, you can find it here. + +If you want to work on any of these issues, just drop a message saying "I'd like to work on this", and we will assign the issue to you and update the issue's status as "claimed". **You are expected to send a pull request within seven days** after that, so we can still delegate the issue to someone else if you are unavailable. + + +![jira-create-issue](https://github.com/user-attachments/assets/f2440bc1-a7d2-4815-92d3-549a72983df6) + +> \[!Note] +> To know more about [Jira](https://www.atlassian.com/software/jira/guides/getting-started/basics#step-4-create-an-issue) and how to create an issue, click [here](https://mifosforge.jira.com/jira/software/c/projects/MIFOSAC/issues/) + +## Development + +### Pre-requisites +- Install [Android Studio](https://developer.android.com/studio) +- Install [Git](https://git-scm.com/downloads) +- Install JDK 17 or higher + +For more information, see the [Development Setup](https://github.com/openMF/android-client/wiki/Set-up-an-environment) guide. + +### Building the Code + +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](http://developer.android.com/sdk/installing/index.html?pkg=studio). + +To Setup the project, follow the steps below: +- [Fork the Repository](https://github.com/openMF/android-client/wiki/Project-Setup#step-1-fork-the-repository) +- [Clone Your Forked Repository on Android Studio](https://github.com/openMF/android-client/wiki/Project-Setup#step-2-clone-your-forked-repository) +- [Set Up Your Development Branch](https://github.com/openMF/android-client/wiki/Project-Setup#step-3-set-up-your-development-branch) + +### Code Conventions + +- **Most important: Look around.** Match the style you see used in the rest of the project. This includes formatting, naming files, naming things in code, naming things in documentation, etc. +- "Attractive" +- We do have Prettier (a formatter) and ESLint (a syntax linter) to catch most stylistic problems. If you are working locally, they should automatically fix some issues during every git commit. +- **For documentation**: Do not wrap lines at 80 characters - configure your editor to soft-wrap when editing documentation. + +Don't worry too much about styles in general—the maintainers will help you fix them as they review your code. + +## Pull Requests + +So you have decided to contribute code back to upstream by opening a pull request. You've invested a good chunk of time, and we appreciate it. We will do our best to work with you and get the PR looked at. + +Working on your first Pull Request? You can learn how from this free video series: + +[**How to Contribute to an Open Source Project on GitHub**](https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github) + +Please make sure the following is done when submitting a pull request: + +1. **Keep your PR small.** Small pull requests (~300 lines of diff) are much easier to review and more likely to get merged. Make sure the PR does only one thing, otherwise please split it. +2. **Use descriptive titles.** It is recommended to follow this [commit message style](#semantic-commit-messages). +3. **Test your changes.** Describe your [**test plan**](#test-plan) in your pull request description. + +All pull requests should be opened against the `master` branch. + +We have a lot of integration systems that run automated tests to guard against mistakes. The maintainers will also review your code and fix obvious issues for you. These systems' duty is to make you worry as little about the chores as possible. Your code contributions are more important than sticking to any procedures, although completing the checklist will surely save everyone's time. + +### Semantic Commit Messages + +See how a minor change to your commit message style can make you a better programmer. + +Format: `(): ` + +`` is optional. If your change is specific to one/two packages, consider adding the scope. Scopes should be brief but recognizable, e.g. `content-docs`, `theme-classic`, `core` + +The various types of commits: + +- `feat`: a new API or behavior **for the end user**. +- `fix`: a bug fix **for the end user**. +- `docs`: a change to the website or other Markdown documents in our repo. +- `refactor`: a change to production code that leads to no behavior difference, e.g. splitting files, renaming internal variables, improving code style... +- `test`: adding missing tests, refactoring tests; no production code change. +- `chore`: upgrading dependencies, releasing new versions... Chores that are **regularly done** for maintenance purposes. +- `misc`: anything else that doesn't change production code, yet is not `test` or `chore`. e.g. updating GitHub actions workflow. + +Do not get too stressed about PR titles, however. Your PR will be squash-merged and your commit to the `main` branch will get the title of your PR, so commits within a branch don't need to be semantically named. The maintainers will help you get the PR title right, and we also have a PR label system that doesn't equate with the commit message types. Your code is more important than conventions! + +Example: + +``` +feat(core): allow overriding of webpack config +^--^^----^ ^------------^ +| | | +| | +-> Summary in present tense. Use lower case not title case! +| | +| +-> The package(s) that this change affected. +| ++-------> Type: see above for the list we use. +``` + +### Test Plan + +A good test plan has the exact commands you ran and their output and provides screenshots or videos if the pull request changes UI. + +Tests are integrated into our continuous integration system, so you don't always need to run local tests. However, for significant code changes, it saves both your and the maintainers' time if you can do exhaustive tests locally first to make sure your PR is in good shape. There are many types of tests: + +In MacOS, Windows or Linux, you should run the following commands before opening a PR, and make sure to pass all the commands: + +[//]: # (* `./gradlew check -p build-logic` this checks build-logic configured properly.
) +* `./gradlew spotlessApply --no-configuration-cache` an check and apply formatting to any file.
+* `./gradlew dependencyGuardBaseline` to generate dependency-guard baseline.
+* `./gradlew detekt` to check detekt error.
+* `./gradlew build` to build the project.
+ +[//]: # (* `./gradlew testDebug :lint:test :androidApp:lintRelease :lint:lint` to check lint and test error.
) + +[//]: # (* `./gradlew updateReleaseBadging` to update the badging for the project.
) + +[//]: # (*Or Run the `ci-prepush.sh` or `ci-prepush.bat` script to run all required checks in sequence.*) \ No newline at end of file diff --git a/README.md b/README.md index b0c9682fd94..f3483ed5c99 100644 --- a/README.md +++ b/README.md @@ -1,116 +1,56 @@ -![cover](https://user-images.githubusercontent.com/94394661/278370464-4248f4eb-3601-42da-af40-0cc1531661ff.png) +
+Mifos Mobile - - - - -# Android Client for MifosX +# Android-Client Android Application for MifosX This is an Android Application built on top of the [MifosX](https://mifosforge.jira.com/wiki/spaces/MIFOSX/overview) platform and written in Kotlin. It is based on Mifos X - a robust core banking platform that is developed for field officers using which they process transactions, keep track of their client’s data, center records, group details, different types of accounts (loan, savings and recurring) of the client, run reports of clients, etc. Its sole purpose is to make field operations easier and effortless. This application also provides an offline feature that allows officers to connect with clients and provide them financial support in remote areas as well. -### Features - -- Search of Clients, Client Details Viewing. -- Creating new Clients, Groups, and Centers. -- Savings Accounts and Loan Accounts Viewing. -- Savings Account Transactions (Withdrawal & Deposit). -- Loan Accounts (Approval, Disbursal, Repayments etc). -- Identifiers and Documents (Creation, Upload, Download and View). -- Collection Sheet Access (Online), Datatables (View, Add/Remove Entries). -- Offline Sync (for Clients, Centers, and Groups) and Offline Dashboard. -- Checker Inbox. -- Path Tracker. +![Kotlin](https://img.shields.io/badge/kotlin-%237F52FF.svg?style=flat-square&logo=kotlin&logoColor=white) +![Kotlin Multiplatform](https://img.shields.io/badge/Kotlin%20Multiplatform-4c8d3f?style=flat-square&logo=kotlin&logoColor=white) +![Android](https://img.shields.io/badge/Android-3DDC84?style=flat-square&logo=android&logoColor=white) -### Status +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![License](https://img.shields.io/github/license/openMF/android-client)](https://github.com/openMF/android-client/blob/main/) +[![Release](https://img.shields.io/github/v/release/openMF/android-client)](https://github.com/openMF/android-client/releases) -release -Chat -build -commit-activity -license -## Notice +[![Workflow for master/development branches](https://github.com/openMF/android-client/actions/workflows/pr-check-android.yml/badge.svg)](https://github.com/openMF/android-client/actions/workflows/pr-check-android.yml) +[![Slack](https://img.shields.io/badge/Slack-4A154B?style=flat-square&logo=slack&logoColor=white)](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA) +[![Jira](https://img.shields.io/badge/jira-%230A0FFF.svg?style=flat-square&logo=jira&logoColor=white)](https://mifosforge.jira.com/jira/software/c/projects/MIFOSAC/issues/?filter=allissues&jql=project%20%3D%20%22MM%22%20ORDER%20BY%20created%20DESC) +
-:warning: We are fully committed to implementing [Jetpack Compose](https://developer.android.com/jetpack/compose) and moving ourselves to support `Kotlin multi-platform`. **If you are sending any PR regarding `XML changes` we will `not` consider at this moment but converting XML to Jetpack Compose is most welcome**. We would be pleased to receive any PR you may have regarding logical changes to an Activity/Fragment. - -## Join Us on Slack - -Mifos boasts an active and vibrant contributor community, Please join us on [slack](https://join.slack.com/t/mifos/shared_invite/zt-2f4nr6tk3-ZJlHMi1lc0R19FFEHxdvng). Once you've joined the mifos slack community, please join the `#android-client` channel to engage with android-client development. +> \[!Note] +> **We're moving towards to Jira for issue tracking. Please use [Jira](https://mifosforge.jira.com/jira/software/c/projects/MIFOSAC/issues/) for issue tracking.** +> **And Join our [slack](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA) community channel `android-client` to discuss all things about Android Client development. Please keep discussions focused and avoid cross-posting across channels.** ## Demo credentials -Fineract Instance: gsoc.mifos.community - -Username: `mifos` - -Password: `password` - -## How to Contribute - -This is an OpenSource project and we like to see new contributors contibuting to the project. The issues should be raised via the GitHub issue tracker. - -1. Fork the Project -2. Create Feature Branch - - ```sh - git checkout -b fix_#issue_no - ``` -3. Commit your Changes - - ```sh - git commit -m "feat/design:Add some message" - ``` - -4. Push to the Branch - - ```sh - git push --set-upstream origin fix_#issue_no - ``` - -5. Open a Pull Request - -### Guidelines -- [Issue Tracker](https://github.com/openMF/android-client/blob/master/.github/ISSUE_TEMPLATE.md) -- [Commit Style](https://github.com/openMF/android-client/wiki/Commit-Style-Guide) -- [Pull Request](https://github.com/openMF/android-client/blob/master/.github/PULL_REQUEST_TEMPLATE.md) - -## Development Setup - -To start, ensure that you've successfully downloaded and properly configured the Android Studio SDK. You can refer to a guide detailing the setup process [here](http://developer.android.com/sdk/installing/index.html?pkg=studio). - -## Building the Code - -1. Clone the repository - - ```sh - git clone https://github.com/openMF/android-client.git - ``` -2. Open Android Studio. - -3. Click on 'Open an existing Android Studio project' - -4. Browse to the directory where you cloned the android-client repo and click OK. - -5. Let Android Studio import the project. +- **Fineract Instance**: `gsoc.mifos.community` +- **Username**: `mifos` +- **Password**: `password` -6. Build the application in your device by clicking run button. +### How to Contribute +Thank you for your interest in contributing to the Mifos Mobile project by Mifos! We welcome all contributions and encourage you to follow these guidelines to ensure a smooth and efficient collaboration process. +To get started, please refer to the [Contribution Guide](https://github.com/openMF/android-client/wiki/Contribution-Guide) for detailed instructions on how to contribute to the project. -## Travis CI -Travis CI is a hosted continuous integration service used to build and test software projects hosted at GitHub. We use Travis CI for continous integration and clean maintainence of code. 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,
+### Branch Policy +For development purposes, always pull from the **development** branch, as all contributions and updates are merged into this branch. Upon completion of development, changes are subsequently merged into the **master** branch, which represents the stable and bug-free version of the code -For Mac OS and Linux based, you can use the following commands: +### Development Setup +Please refer to the [Development Setup Guide](https://github.com/openMF/android-client/wiki/Set-up-an-environment) for detailed instructions on configuring the development environment. -* `./gradlew checkstyle` quality checks on your project’s code using Checkstyle and generates reports from these checks.
-* `./gradlew pmd` an check and apply formatting to any plain-text file.
-* `./gradlew findbugs` a program which uses static analysis to look for bugs in Java code.
-* `./gradlew build` provides a command line to execute build script.
+### Committing Your Changes +After making changes in your local repository, you will need to commit them to your GitHub repository. +If you are unfamiliar with the process of committing changes, please refer to the [Committing Your Changes](https://github.com/openMF/android-client/wiki/Committing-Your-Changes) guide. +### Squashing Your Commits +To ensure a clean and organized Git history, contributors are encouraged to squash their commits before merging. Instructions on how to squash commits can be found in the [Squashing Your Commits](https://github.com/openMF/mifos-mobile/wiki/Squashing-Your-Commits) guide. -For Windows, you can use the following commands: +### Resolving Merge Conflicts +Occasionally, merge conflicts may arise when your pull request is being reviewed. These conflicts need to be resolved manually. +To learn how to resolve merge conflicts, please refer to the [Solving Merge Conflicts](https://github.com/openMF/android-client/wiki/Solving-Merge-Conflicts) guide -* `gradlew checkstyle` quality checks on your project’s code using Checkstyle and generates reports from these checks.
-* `gradlew pmd` an check and apply formatting to any plain-text file.
-* `gradlew findbugs` a program which uses static analysis to look for bugs in Java code.
-* `gradlew build` provides a command line to execute build script.
+## Code of Conduct +Mifos has adopted a Code of Conduct that we expect project participants to adhere to. Please read [the full text](CODE_OF_CONDUCT.md) so that you can understand what actions will and will not be tolerated. ## Contributors