VOPA is an innovative offline-first, voice-enabled payment assistant designed to transform how people in emerging markets pay, buy, and sell. By leveraging voice recognition, natural language processing (NLP), and Kora's payment APIs, VOPA provides a seamless and secure payment experience via voice commands, even without internet connectivity.
- Voice Commands: Conduct transactions through simple voice commands, supporting local languages and dialects.
- Offline-First: Users can make payments even in areas with poor or no internet connectivity using USSD/SMS gateways.
- Voice Biometrics: Secure authentication using voice biometrics for enhanced security.
- Kora Integration: Full integration with Kora's payment APIs for fast and secure payments across multiple channels.
- Multi-Device Support: Works on both smartphones and feature phones using USSD/SMS.
- Flutter SDK: To build cross-platform mobile applications.
- speech_to_text: For converting voice commands to text.
- hive: Local storage for offline-first capabilities.
- flutter_secure_storage: Securely store user data and credentials.
- http: To communicate with the backend API.
- NestJS: Backend framework to build scalable and efficient server-side applications.
- Kora API: Integrated with Kora's payment gateway to handle transactions.
- Voice Biometrics: Using third-party libraries to verify user identity based on voice patterns.
- USSD/SMS Integration: Support for USSD/SMS transactions via third-party services (e.g., Twilio, Africa's Talking).
- Flutter SDK: Install Flutter for the mobile frontend.
- Node.js & NestJS: Install Node.js and NestJS CLI for backend development.
vopa/
├── backend/ # NestJS backend for API and integration with Kora and USSD
│ └── src/
│ └── app.controller.ts
│ └── app.module.ts
│ └── payment/ # Payment handling module
│ └── services/ # Services for integrating with Kora APIs
├── vopa_app/ # Flutter mobile application for voice-enabled payments
│ └── lib/
│ └── src/
│ └── services/ # API calls and voice recognition services
│ └── models/ # Data models for Hive and user data
│ └── screens/ # App screens
│ └── widgets/ # Reusable UI components
├── README.md
└── .gitignore
-
Clone the repository:
git clone https://github.com/francisojeah/vopa.git cd vopa/vopa_app -
Install Flutter dependencies:
flutter pub get
-
Run the Flutter app on your emulator or device:
flutter run
-
Navigate to the backend directory:
cd vopa/backend -
Install the required Node.js dependencies:
npm install
-
Start the NestJS server:
npm run start:dev
POST /payment: Initiate a payment through voice commands or text.GET /: Basic health check for the backend service.
- Run the backend server locally on
localhost:3000. - Test the APIs using Postman or cURL for payment transactions.
- Use Flutter’s testing framework to test mobile app functionality.
- Voice Biometrics: Secure authentication using voice patterns.
- Offline Mode: Data stored securely on-device using
flutter_secure_storage. - SSL Encryption: Ensure all communications between the app and backend use SSL/TLS.
- Multi-Language Support: Expand voice command support for more languages and dialects.
- AI/ML for Voice Recognition: Enhance voice recognition with AI-based NLP models.
- Advanced Fraud Detection: Implement algorithms to detect and mitigate fraud in real-time transactions.
We welcome contributions from the community. Please follow the guidelines below to submit a PR:
- Fork the repository.
- Create a new branch with your feature or bug fix.
- Commit and push your changes.
- Submit a Pull Request with a detailed description of your changes.
This project is licensed under the MIT License.