Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 123 additions & 0 deletions docs/projects/C4GT_Project_Documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# C4GT 2025 – Project Documentation

## Overview
This document summarizes my contributions during the C4GT 2025 program under the Mifos Initiative.
I worked on two main projects:
- **Android Client (openmf/android-client)** – Migrating feature modules to **Compose Multiplatform (CMP)**.
- **Mobile Wallet / Mifos Pay (openmf/mobile-wallet)** – Implementing **UPI payment flows** and setting up future modules (e.g., AutoPay, Bank Transfers, Customer/ Merchant Payments).

---

## 1. Android Client (openmf/android-client)

### Scope
- Migrated feature modules to **Compose Multiplatform**:
- `feature/checker-inbox-task`
- `feature/path-tracking`
- `feature/client` (largest module, 13 sub-features)
- Bug fixing and improvements in sub-features (`client-identifiers`, `client-charges`, `client-pinpoint`, etc.).
- Reviewed multiple PRs from the team.

### Key Achievements
- **Full migration** of `feature/client` to CMP (merged).
- **Bug fixes** across sub-features: dialogs, UI states, silent failures, signature reset, charge dialog UX.
- **Abstractions & design ideas** for Android SDK dependencies (LocationManager, File, Uri, Context).
- **PR reviews** across the repo, helping maintain code quality.

### Selected Pull Requests
- [#2389](https://github.com/openMF/android-client/pull/2389) – Migrate checker-inbox-task to CMP
- [#2400](https://github.com/openMF/android-client/pull/2400) – Migrate path-tracking to CMP
- [#2401](https://github.com/openMF/android-client/pull/2401) – Migrate client module to CMP
- [#2415](https://github.com/openMF/android-client/pull/2415) – Fix identifiers empty state & dialog layout
- [#2430](https://github.com/openMF/android-client/pull/2430) – Merge ViewModels, add charge validation
- [#2433](https://github.com/openMF/android-client/pull/2433) – Fix Client Pinpoint & implement Pinpoint Map dialog

_(More PRs linked in weekly updates)_

### Learnings
- Large-scale CMP migrations (navigation, DI, tightly-coupled Android SDK APIs).
- Debugging CMP-related UI bugs and state issues.
- Collaboration via reviews, navigation design, and Jira ticketing.

---

## 2. Mobile Wallet / Mifos Pay (openmf/mobile-wallet)

### Scope
- **UPI Payment Flows**:
- Scan & Pay (via QR codes)
- Pay to UPI ID / Pay Anyone
- Bank Transfers (self & others)
- AutoPay module setup
- **Standing Instructions**:
- Fixed loading issues and added fallbacks for missing API data.
- **Upgrades & Setup**:
- Upgraded compileSdk, AGP, Gradle, and dependencies.
- Drafted implementation plan for **Merchant Payments KMP Module**.

### Key Achievements
- Built **frontend flows** for UPI: navigation, screen layouts, and UI/UX fixes.
- Implemented **QR-based UPI app invocation** (draft PR).
- Drafted backend design assumptions with **PHEE + Fineract + PSP bank UPI APIs**.
- Fixed **Standing Instruction bugs** (merged).
- Created Jira tickets for merchant payments and loan sandbox module.

### Selected Pull Requests
- [#1889](https://github.com/openMF/mobile-wallet/pull/1889) – Update compileSdk to 35, AGP, Gradle, dependencies
- [#1890](https://github.com/openMF/mobile-wallet/pull/1890) – Fix SI loading issue
- [#1891](https://github.com/openMF/mobile-wallet/pull/1891) – Add default values for missing fields
- [#1899](https://github.com/openMF/mobile-wallet/pull/1899) – Fix DialogState serialization error
- [#1903](https://github.com/openMF/mobile-wallet/pull/1903) – Add basic UPI payment support (draft)
- [#1906](https://github.com/openMF/mobile-wallet/pull/1906) – Implement Pay Anyone (draft)
- [#1907](https://github.com/openMF/mobile-wallet/pull/1907) – Add Bank Transfers (draft)
- [#1908](https://github.com/openMF/mobile-wallet/pull/1908) – Setup AutoPay feature (draft)
- [#1909](https://github.com/openMF/mobile-wallet/pull/1909) - implement autopay dashboard (draft)
- [#1910](https://github.com/openMF/mobile-wallet/pull/1910) - biller and bills setup (draft)
- [#1912](https://github.com/openMF/mobile-wallet/pull/1912) - see all; sorting; empty state; per-tab scroll; top bar
- [#1913](https://github.com/openMF/mobile-wallet/pull/1913) - resolve overlapping screens during transitions

### Learnings
- UPI payment flow design & integration patterns.
- Mapping frontend flows to backend orchestration.
- Drafting extensible KMP modules (Add Payments, Merchant Payments, Loan Sandbox).
- Handling cross-module UI/UX refinements.

---

## 3. Weekly Progress
Detailed week-by-week updates are available [here](https://github.com/openMF/mobile-wallet/issues/1852#issuecomment-2950151917).
(Summarized in PRs above; includes Week 1 → Week 14 breakdown.)

---

## 4. Current Status
- **Android Client**: CMP migration PRs merged, bug fixes completed.
- **Mobile Wallet**: UPI payment flow and AutoPay PRs in draft/review; backend clarifications pending.
- **Documentation**: Jira tickets created and parented under master tickets.

---

## 5. Next Steps
For future contributors:
- Complete review & merge of draft PRs in `mobile-wallet`.
- Connect UPI frontend flows with backend APIs once integration clarifications are resolved.
- Extend Payments and AutoPay modules as planned.

---

## 6. License
This documentation is licensed under the
[Creative Commons Attribution 4.0 International License (CC BY 4.0)](./LICENSE.md).

You are free to share and adapt the material, provided you give appropriate credit.

## 7. References
- Jira tickets: [MW-211](https://mifosforge.jira.com/browse/MW-211)
- Midterm presentation: [Biplab_Dutta_C4GT_2025_Midpoint_Slides.pdf](https://github.com/biplab1/c4gt-2025-mifos-docs/blob/main/Biplab_Dutta_C4GT_2025_Midpoint_Slides.pdf)
- [Mifos Initiative](https://mifos.org/)
- [C4GT Program](https://codeforgovtech.in/)
- [Mobile Wallet Repository](https://github.com/openMF/mobile-wallet)
- [Android Client Repository](https://github.com/openMF/android-client)

---

Loading