Skip to content
Aditya3609_@ edited this page Dec 26, 2024 · 36 revisions

Welcome to Mifos Android Client Wiki

Welcome to the Mifos Android Client Wiki! This document serves as a guide to effectively contribute to the Mifos Android Client, a mobile banking application designed to extend the functionality of the MifosX platform. Whether you are here to report issues, explore the codebase, or submit enhancements, this guide will help you easily navigate the project. Mifos Android Client is a native Android application aimed at financial institutions and their staff, enabling efficient management of customer accounts, loans, savings, and other financial services. Currently built using Jetpack Compose, the project is set to transition into a Compose Multiplatform architecture. This shift will enable seamless development across multiple platforms, improving code sharing, scalability, and user experience.

Kotlin Kotlin Multiplatform Android Open Source GSoC

PRs Welcome GitHub license GitHub release GitHub issues

Workflow for master/development branches Slack Jira

Code of Conduct

Mifos has adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text 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 for issue tracking. And Join our slack channel android-client to discuss all things about Android Client development. and do not cross post your messages in multiple channels. ask your question in the appropriate channel.

Quick Navigation

Getting Started

  1. Set up an Environment
  2. Project Setup
  3. Committing Your Changes

Development Guidelines

Technical Documentation

Project Modules

project-root/ Android Client

├── buildLogic/                # Shared build configuration scripts (Gradle)

├── core/                      # Core business logic module
│   ├── common/                # Common code shared across the application
│   ├── data/                  # Data models and data handling logic
│   ├── database/              # Database-related implementations
│   ├── datastore/             # Datastore implementations for local storage
│   ├── designsystem/          # Application-wide design system components
│   ├── domain/                # Domain-specific logic and use cases
│   ├── model/                 # Data models and entities
│   │   ├── core/              # Core data models
│   │   │   ├── main/          # Main data models
│   │   └── └── test/          # Test data models
│   ├── network/               # Networking and API clients
│   ├── testing/               # Shared testing utilities and mocks
│   └── ui/                    # Core UI components and utilities

├── feature/                   # Feature-specific modules
│   ├── about/                 # About screen feature module
│   ├── activate/              # Account activation feature module
│   ├── auth/                  # Authentication feature module
│   ├── center/                # Center management feature module
│   ├── checker-inbox-task/    # Checker inbox task feature module
│   ├── client/                # Client management feature module
│   ├── collectionSheet/       # Collection sheet feature module
│   ├── data-table/            # Data table feature module
│   ├── document/              # Document management feature module
│   ├── groups/                # Group management feature module
│   ├── loan/                  # Loan management feature module
│   ├── note/                  # Note-taking feature module
│   ├── offline/               # Offline functionality feature module
│   ├── path-tracking/         # Path tracking feature module
│   ├── report/                # Reporting feature module
│   ├── savings/               # Savings management feature module
│   ├── search/                # Search functionality feature module
│   ├── settings/              # Application settings feature module
└── └── splash/                # Splash screen feature module

Contributing

Thank you for being so interested 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 for detailed instructions on how to contribute to the project.

The Open Source Guides 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:

Join Us on Slack

Mifos boasts an active and vibrant contributor community, Please join us on slack. Once you've joined the mifos slack community, please join the #mifos-mobile channel to engage with mifos-mobile development. If you encounter any difficulties joining our Slack channel, please don't hesitate to open an issue. This will allow us to assist you promptly or send you an invitation.

Slack Jira

License

This project is open-source and available under Mozilla Public License Version 2.0 (MPL-2.0).