WalkYou was created to build an inclusive financial solution, specifically designed for people with sensory disabilities. Our main focus is to break down the traditional barriers these individuals encounter when performing everyday financial operations.
We are a team committed to financial inclusion and technological accessibility:
- Alavez Hernández Humberto
- Cortés Hernández Arely
- Minor Nava Santiago Ian
- Silva García Osiris
To develop a mobile application that not only facilitates financial transactions, but also:
- Provides a completely accessible experience for users with different capabilities
- Integrates sign language technologies for more inclusive communication
- Offers an intuitive and user-friendly interface for all users
- Promotes financial independence for people with different abilities
- Interface adapted for different accessibility needs
- Intuitive navigation system
- Basic send and receive money functionalities
- Integrated instructional videos in sign language
- Simplified and guided user experience
- Interledger Open Payments integration for peer-to-peer transfers
- Complete sign language implementation throughout the application
- Integration with voice recognition systems
- Additional accessibility features
- Expansion of inclusive financial services
Built with Flutter/Dart for cross-platform compatibility (iOS, Android, Web, Desktop).
Core Dependencies:
- flutter_svg: Vector graphics support
- video_player: Sign language instructional videos
- google_fonts: Typography customization
- http: API communication layer
- url_launcher: Browser-based authorization flow
Key Pages:
- Send Money Page: Peer-to-peer payment interface with Interledger integration
- Receive Page: Payment request interface
- Voice Continue Page: Accessibility-focused navigation
- Home Screen: Main dashboard with transaction actions
Node.js REST API server exposing Interledger Open Payments functionality.
Core Dependencies:
- @interledger/open-payments v7.1.3: Official Interledger SDK
- express: HTTP server framework
- cors: Cross-origin resource sharing
Architecture:
backend/
├── server.js # REST API with 7 endpoints
├── index.js # CLI tutorial for testing ILP flow
├── private.key # Authentication key for Open Payments client
├── package.json # Node.js dependencies
└── README.md # Backend documentation
The application uses Interledger Protocol for secure, cross-border peer-to-peer payments via the Open Payments API.
Payment Flow:
- User initiates payment from Send Money page
- Frontend validates input and calls backend REST API
- Backend creates authenticated Open Payments client
- System retrieves sender and receiver wallet addresses
- Backend creates incoming payment grant and payment object
- Backend generates quote for the transaction
- Backend requests outgoing payment grant with interactive authorization
- User authorizes payment in browser via redirect URL
- Frontend completes payment by finalizing the grant
- Payment executes through Interledger network
- Both parties receive transaction confirmation
Backend API Endpoints:
- POST /api/transfer/simple: Initiate payment and return authorization URL
- POST /api/outgoing-payment/complete: Finalize payment after user authorization
- GET /api/wallet/:walletUrl: Retrieve wallet address information
- POST /api/incoming-payment: Create incoming payment
- POST /api/quote: Generate transaction quote
- POST /api/grant/outgoing: Request outgoing payment grant
- GET /api/health: Service health check
Authentication: The backend uses an authenticated Open Payments client initialized with:
- Wallet Address URL: https://ilp.interledger-test.dev/ian
- Private Key: RSA key stored in private.key file
- Key ID: Unique identifier for the authentication key
Test Environment:
- Network: Interledger Test Network (ilp.interledger-test.dev)
- Sender Wallet: https://ilp.interledger-test.dev/arely
- Receiver Wallet: https://ilp.interledger-test.dev/humberto
- Client Wallet: https://ilp.interledger-test.dev/ian
- Currency: USD (assetCode: USD, assetScale: 2)
Amount Format: Amounts are represented as strings of integers in base units:
- User input: 1.00 USD
- Converted to: "100" (1.00 USD × 10^2)
- assetScale: 2 (2 decimal places for cents)
Request Flow:
Flutter UI → ApiService → HTTP POST → Express Server → Open Payments SDK → ILP Network
Sample Request:
POST http://localhost:3000/api/transfer/simple
Content-Type: application/json
{
"senderWalletUrl": "https://ilp.interledger-test.dev/arely",
"receiverWalletUrl": "https://ilp.interledger-test.dev/humberto",
"amount": "100",
"currency": "USD"
}Sample Response:
{
"success": true,
"requiresAuthorization": true,
"authorizationUrl": "https://ilp.interledger-test.dev/...",
"continueUri": "https://ilp.interledger-test.dev/continue/...",
"continueToken": "access_token_value",
"message": "Authorization required"
}Authorization Flow:
- Backend returns authorization URL
- Frontend displays dialog with "Authorize" button
- User clicks button, browser opens authorization page
- User approves payment on Interledger platform
- User returns to app and confirms completion
- Frontend calls /api/outgoing-payment/complete
- Backend finalizes grant and executes payment
Error Handling:
- 400: Invalid amount format or missing required fields
- 401: Authentication failed with Open Payments client
- 404: Wallet address not found
- 500: Internal server error or Open Payments API failure
All errors include detailed messages and are logged on both frontend and backend for debugging.
- Flutter SDK 3.0+
- Node.js 16+
- Git
- Chrome browser (for web development)
cd backend
npm install
npm startServer will start on http://localhost:3000
cd frontend
flutter pub get
flutter run -d chrome- Start backend server
- Launch frontend app
- Navigate to Send Money page
- Enter recipient wallet URL: ilp.interledger-test.dev/humberto
- Enter amount: 1.00
- Click "Send Money"
- Click "Authorize" when dialog appears
- Approve payment in browser
- Return to app and click "Complete Payment"
- Verify success message
For detailed testing instructions, see TESTING_GUIDE.md
- High contrast color schemes
- Large touch targets for easy interaction
- Clear visual feedback for all actions
- Simplified navigation flow
- Screen reader compatibility
- Sign language video integration
- Complete sign language implementation throughout the app
- Voice command integration
- Haptic feedback for transaction confirmations
- Customizable font sizes
- Audio descriptions for all visual elements
- Frontend: Active development (Flutter/Dart)
- Backend: Implemented with Interledger Open Payments
- Integration: Complete and functional
- Testing: Active testing on Interledger testnet
- Expand sign language mode implementation
- Add voice command support
- Implement biometric authentication
- Enhance transaction history features
- Add multi-language support
- Production deployment preparation
- README.md: Project overview (this file)
- INTEGRATION_GUIDE.md: Technical integration details
- TESTING_GUIDE.md: Step-by-step testing instructions
- TROUBLESHOOTING.md: Common issues and solutions
- AMOUNT_FORMAT.md: Currency amount formatting reference
- FLUTTER_SETUP.md: Flutter installation guide
- backend/README.md: Backend-specific documentation
- frontend/README.md: Frontend-specific documentation
We welcome contributions that enhance accessibility and financial inclusion. Please ensure all changes maintain or improve accessibility features.
This project is part of an academic initiative focused on technological accessibility and financial inclusion.
For technical details about the current frontend implementation, see the README in the /frontend folder. For backend API documentation and Interledger integration details, see the README in the /backend folder.