{"id":25144422,"url":"https://github.com/openmf/fineract-client-kmp-sdk","last_synced_at":"2025-04-28T11:17:13.134Z","repository":{"id":258096502,"uuid":"858850689","full_name":"openMF/fineract-client-kmp-sdk","owner":"openMF","description":"Fineract Client SDK is a Kotlin-based SDK designed to interact with the Apache Fineract 1.x platform. It basically exposes services to Applications, offering an abstract layer and avoiding the need to construct the client and Services.","archived":false,"fork":false,"pushed_at":"2025-04-16T20:30:13.000Z","size":2435,"stargazers_count":4,"open_issues_count":6,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-28T11:17:02.641Z","etag":null,"topics":["fineract","kmp","kotlin","kotlin-coroutines","kotlin-multiplatform","ktor","ktorfit"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openMF.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-17T16:34:16.000Z","updated_at":"2025-04-16T20:30:18.000Z","dependencies_parsed_at":"2024-11-12T09:23:21.667Z","dependency_job_id":"8c1efc00-a20d-411c-acff-fcddf3f4a419","html_url":"https://github.com/openMF/fineract-client-kmp-sdk","commit_stats":null,"previous_names":["openmf/fineract-client-sdk-cmp","openmf/fineract-client-kmp-sdk"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openMF%2Ffineract-client-kmp-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openMF%2Ffineract-client-kmp-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openMF%2Ffineract-client-kmp-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openMF%2Ffineract-client-kmp-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openMF","download_url":"https://codeload.github.com/openMF/fineract-client-kmp-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251302782,"owners_count":21567601,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fineract","kmp","kotlin","kotlin-coroutines","kotlin-multiplatform","ktor","ktorfit"],"created_at":"2025-02-08T19:46:15.406Z","updated_at":"2025-04-28T11:17:13.126Z","avatar_url":"https://github.com/openMF.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fineract Client Kotlin Multiplatform SDK\n\nFineract Client SDK is a Kotlin-based SDK designed to interact with the Apache Fineract 1.x platform. It basically exposes services to Applications, offering an abstract layer and avoiding the need to construct the client and Services.\nFineract client sdk is built on top of [Fineract client Kmp](https://github.com/openMF/fineract-client-kmp) utilizes its model classes and services.\n\n![Kotlin](https://img.shields.io/badge/kotlin-%237F52FF.svg?style=flat-square\u0026logo=kotlin\u0026logoColor=white)\n![Kotlin Multiplatform](https://img.shields.io/badge/Kotlin%20Multiplatform-4c8d3f?style=flat-square\u0026logo=kotlin\u0026logoColor=white)\n![Open Source](https://img.shields.io/badge/Open%20Source-Yes-brightgreen)\n![GSoC](https://img.shields.io/badge/GSoC-yellow)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n[![GitHub license](https://img.shields.io/badge/License-MPL_2.0-brightgreen.svg)](https://github.com/openMF/fineract-client-kmp-sdk/tree/main)\n[![GitHub release](https://img.shields.io/badge/release-v0.0.1-blue)](https://github.com/openMF/fineract-client-kmp-sdk/releases/)\n[![GitHub issues](https://img.shields.io/github/issues/Naereen/StrapDown.js.svg)](https://github.com/openMF/fineract-client-kmp-sdk/issues/)\n[![Slack](https://img.shields.io/badge/Slack-4A154B?style=flat-square\u0026logo=slack\u0026logoColor=white)](https://join.slack.com/t/mifos/shared_invite/zt-2wvi9t82t-DuSBdqdQVOY9fsqsLjkKPA)\n\n## Feature\n\n\n1. Fineract SDK supports Multiple Platforms due to the KtorFit network library.\n2. It supports Coroutines and Flows with Suspend functions.\n3. Extend [`UserPreferences\u003cUSER\u003e`](https://github.com/openMF/fineract-client-kmp-sdk/blob/main/core/src/main/java/org/mifos/core/sharedpreference/UserPreferences.kt) and [`BasePreferenceManager`](https://github.com/openMF/fineract-client-kmp-sdk/blob/main/core/src/main/java/org/mifos/core/sharedpreference/BasePreferenceManager.kt) classes for handling the preferences tasks.\n4. Single point of interaction for all the api services using [BaseApiManager](https://github.com/openMF/fineract-client-kmp-sdk/blob/main/core/src/main/java/org/mifos/core/apimanager/BaseApiManager.kt).\n\n## Quickstart Setup\n\n### Installation\n\nAdd dependency in the `build.gradle`.\n\n- Kts\n\n  ```kts\n    dependencies {\n        implementation(\"com.github.openMF:fineract-client-kmp-sdk:$sdk_Version\")\n    }\n  ```\n\n- Groovy\n  ```groovy\n    dependencies {\n        implementation 'com.github.openMF:fineract-client-kmp-sdk:$sdk_Version'\n    }\n  ```\n\nAdd this in your root `settings.gradle`.\n\n- Kts\n\n  ```Kotlin\n    dependencyResolutionManagement {\n        repositories {\n            maven {\n                setUrl(\"https://jitpack.io\")\n            }\n        }\n    }\n  ```\n\n- Groovy\n\n  ```groovy\n    allprojects {\n        repositories {\n            maven { url 'https://jitpack.io' }\n        }\n    }\n  ```\n\n### Initialization\n\n- Initialize the `BaseApiManager` and create a service to initialize the KtorFit client.\n\n    ```Kotlin\n        val baseUrl = PROTOCOL_HTTPS + API_ENDPOINT + API_PATH\n        val tenant = \"default\"\n        val username = \"mifos\"\n        val password = \"password\"\n        val baseApiManager = BaseApiManager.getInstance()\n        baseApiManager.createService(username, password, baseUrl, tenant, false)\n    ```\n\n### Authentication\n\n- Example code to use the Authentication API:\n\n    ```Kotlin\n        val req = PostAuthenticationRequest(username = username, password = password)\n\n        lifecycleScope.launch(Dispatchers.IO) {\n            val response = baseApiManager.getAuthApi().authenticate(req, true)\n            Log.d(\"Auth Response\",response.toString())    \n        }\n    ```\n\n### Usage Example\n- To get Client Details with clientId 1:\n\n    ```Kotlin\n        private fun getClient() {\n            lifecycleScope.launch(Dispatchers.IO) {\n                val response = baseApiManager.getClientsApi().retrieveOne11(1, false)\n                Log.d(\"Client Details Response\",response.toString())\n            }\n        }\n    ```\n\n## Architecture\n\n1. The core module in the SDK contains all the API requests written.\n2. The entry point to the library is the [BaseApiManager](https://github.com/openMF/fineract-client-kmp-sdk/blob/main/core/src/main/java/org/mifos/core/apimanager/BaseApiManager.kt).\n3. Use companion object's `getInstance()` function to get the instance of the implementation of `BaseApiManager`.\n4. For setting up the services, call `createService(username: String, password: String, baseUrl: String, tenant: String)` method of `BaseApiManager` providing valid credentials.\n\n## Development Setup\nPlease refer to the  [Development Setup Guide](https://github.com/openMF/fineract-client-kmp-sdk/wiki/Set-up-an-environment) for detailed instructions on configuring the development environment.\n\n## How to Contribute\nThank you for your interest in contributing to the Fineract Client Sdk project by Mifos! We welcome all contributions and encourage you to follow these guidelines to ensure a smooth and efficient collaboration process.\nTo get started, please refer to the [Contribution Guide](https://github.com/openMF/fineract-client-kmp-sdk/wiki/How-to-Contribute) for detailed instructions on how to contribute to the project.\n\n\n## Wiki\n\nPlease visit our [Wiki](https://github.com/openMF/fineract-client-kmp-sdk/wiki) page for a detailed overview of the project's architecture and guidelines. Explore further to gain a deeper understanding of our project.\n\n## Contributors\n\nSpecial thanks to the incredible code contributors who continue to drive this project forward.\n\n\u003ca href=\"https://github.com/openMF/fineract-client-kmp-sdk/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=openMF/fineract-client-kmp-sdk\" /\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmf%2Ffineract-client-kmp-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenmf%2Ffineract-client-kmp-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmf%2Ffineract-client-kmp-sdk/lists"}