nigig-org/crates/apps/nigig-mpesa/README.md
2026-07-26 19:38:26 +03:00

43 lines
No EOL
3.9 KiB
Markdown

similar to this sms crate in attached code lets create two crate for robius-ussd and robius-fingerprinting for registering fingerprint and ussd actions in android see androidkotlin.txt for what we are trying to do and add to out code fab icon and fingerprinnting also be one of the security feature before allowing money transaction
see example for ussd app attached androidkotlin.txt we need for makepad 2.0 ui to be used
since we need a fab icon "Pay" which pull up a bottom sheet like in the screenshot appear topic New Expense to be able to pay via ussd for mpesa on the mpesa tracker code attached in mpesa.txt . use the nigig-uikit and nigig-core for ui commom ui and a sample of a bottom sheet we can reuse in out new fab action functionality where we are supposed to have a tabbed menu for New Expense(Meaning Paid Cash or by someone else or other payment option) or Payment (process new Payment)
also capture the transaction cost for a certain transaction
also see the mpesa tracker screen we have tab like transaction | Expenses | Taxes etc
we need one for Pay | New Expense
in pay for mpesa we should aslo have the bands shown to the user for the transaction to be made when the user has entered the amount to be transacted.
otherwise we should implement the kotline code for all the mpesa transaction possible available there and each transaction offline recorded for the cost of each transaction also and an expense to and wil be included to the user analysis
check the shared uikit style ui for the common ui use cases kit button icons and the tabbed menu or the bottom sheet we have used.
use offline first architecture befire doing or proceeding with a transaction as a principle in the app architecture which then can be verified after the transaction is done.
Offline-first
— For data that should survive offline (transaction, receipts, earnings history), always write to Room first and emit from a local Flow. Network responses update the local store, which then propagates to the UI.
# From the makepad_table/ workspace root:
# Full invoicer app
cargo run -p makepad-invoicer --release
# Just the Table widget demo (the "Random table" UI)
cargo run -p makepad-invoicer --example table_demo --release
# Run doc-model unit tests (no GUI needed)
cargo test -p makepad-doc-model
Band: - (enter amount) section we should not have a card and should only show the transaction cost not the band the band should just work in the background and display the amount for transaction cost and the default amount to be shown is Ksh 0.
so in a row (Ksh 0 Deduct [Toggle] Widthraw [Toggle])
th Pick CSV button does not open the file picker and does not show visually if its trully dissabled
the No file selected should not appear below the button row but in one row
(Button [Toggle]) - when disabled
(Button Select File [Toggle]) - when enabled
we should add a step to show the name of the person receiving the amount of money to be sent usually at the screen where one needs to type in 1 to proceed with the transaction or 2 not to proceed with the transaction. so i think a Toggle to give the green light to proceed with the transaction. also the toggle should be disabled by default which should indicate that each transaction should be confirmed by the user before we proceed with option 1 showing confidence we can type 1 and end the transaction. now the name need to be captured or the entity receiving the transaction needs to be captured by the systems and save the entity as the entry receiving the money transacted we should also have a category with the dropdown list of possible categories we have. also a dropdown for the spending if it personal or which project in out project list or on behalf of someone or company or project. We should have a modal for the user to proceed with the transaction by clicking ok of cancel with the name of recepient and amount. check robrix how it has the copy button in the setting screen we need a copy button in the modal besides the recepient to copy