Skip to content

The-Pulse-Engine/pay-off

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PAY-OFF

PAY-OFF is an Android payment app experiment focused on offline-capable payment flows. The codebase is built with Jetpack Compose and Kotlin, and it explores multiple payment rails so the app can keep working when the best path is not available.

This repository is not a finished production release. It is an active open-source codebase that is ready for contributors who want to improve reliability, expand rail support, harden security, and tighten the UX.

What Is Already Built

  • Compose-based app shell with onboarding, home, QR scan, payment confirmation, PIN entry, payment status, saved payees, and transaction history screens.
  • Payment orchestration layer that chooses a rail, executes it, and emits live transaction state.
  • Rail selection logic that considers carrier, signal strength, and device capabilities.
  • USSD automation support for the compressed *99# flow, including session checkpointing.
  • Binary SMS rail support with structured payload encoding.
  • Accessibility service support for automating USSD dialog flows.
  • Secure storage primitives for payment-related secrets and state.
  • Unit tests covering rail selection, USSD string construction, and binary SMS payload encoding.

What Is Still Missing

  • CI checks for build, unit tests, and linting on every pull request.
  • Instrumented end-to-end tests on real devices and SIM profiles.
  • Real-world validation of carrier, bank, and gateway behavior.
  • Production release hardening, including signing, versioning, and release notes.
  • Security review of the placeholder assumptions in offline payment flows.
  • A documented matrix of supported devices, carriers, and bank behaviors.
  • Final UX polish, copy review, and accessibility QA.

Open For Contribution

If you want to help, these are the highest-value areas:

  • Add CI workflows for Android build verification and unit tests.
  • Replace placeholder assumptions with tested production integrations.
  • Expand the rail chooser and fallback logic with more device and carrier coverage.
  • Add instrumented tests for QR scanning, permissions, and payment state handling.
  • Improve the onboarding and permission-explainer screens so they are clearer for first-time users.
  • Expand localization coverage and audit the existing translated strings.
  • Document the security model, threat assumptions, and privacy boundaries.
  • Replace any hardcoded gateway placeholders with validated, configurable values.

Local Setup

Requirements:

  • Android Studio Iguana or newer.
  • JDK 17.
  • Android SDK 34.

Build from the command line:

./gradlew assembleDebug
./gradlew test

On Windows:

gradlew.bat assembleDebug
gradlew.bat test

Project Structure

  • app/src/main/java/com/payoff/core contains orchestration, rails, crypto, and network selection.
  • app/src/main/java/com/payoff/ui contains the Compose screens and navigation.
  • app/src/main/java/com/payoff/data contains storage and persistence.
  • app/src/test/java/com/payoff contains the existing unit tests.

Contribution Notes

Before opening a pull request, make sure the change is focused, tested, and described clearly. Security-sensitive changes should include a short explanation of the risk being addressed and the assumptions being made.

See CONTRIBUTING.md and ROADMAP.md for the recommended contribution workflow and the current list of open tasks.

License

PAY-OFF is licensed under the MIT License. See LICENSE for the full text.

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors