This is a Forex Exchange web application where customers can convert funds from Currency A to Currency B and from Currency B to Currency A. Application must include two wallets where customers can deposit, withdraw, or keep funds in. Currency Conversion means, Wallet A is debited, and Wallet B is credited, or Wallet B is debited and Wallet A is Credited. Customers will be allowed to pull funds (deposit) from their Mobile Money Wallet and using their Visa / Mastercard, then convert the funds and withdraw only to their Mobile Money Wallet. Customer experience is a key part of this application as we want to avoid making the browser go to many pages. Application will use separate exchange rates for converting from Currency A to Currency B and converting from Currency B to Currency A all set by the System Staff / Administrator. Customer depositing money from a particular currency means the funds will be stored in that currency wallet on the platform. All currency conversions can only happen on the customer wallets in the web application. Customer can only withdraw funds if their wallet(s) is funded. In the case that a customer wants to withdraw money but does not have up to that amount in another currency, the application will prompt them that the funds will be converted showing the to be converted amount and if the customer accepts, the application will process the transaction in the customer desired currency. Each customer will be put in a Level profile which will have a transaction withdrawal limit Daily. All newly registered customers will be put in Level 1 by default and the application shall have 5 profiles max. Staffs or System administration should set the transaction limit per profile and the Staff Table below shows the five (5) profiles:
Currency conversion will be treated be treated as module where system administrator can turn on or off Currency conversion from Currency A to Currency B or From Currency B – to Currency A or Both.
Staff will have two profiles. System administrator will give Read, Write, view Permissions to staffs. System admin and staffs should be able to view listing of all customers, filter customer, view customer transactions. Staffs should be able to block customer account / remove block from customer account. A blocked customer should not be able convert / deposit / withdraw funds into their account.
Customer profile will include their Full name, email, phone number, contact details, and profile photo.
Customer will verify phone number via SMS before having an account on the platform. Application should be very secure, will include clickable option for manual or automated backup and manual system restore.
System should validate phone number.
Funds should only be pushed to customer phone number that has been validated through OTP. Every change to customer phone number should mean customer receive OTP and validate phone number. Application should show transactions history per customer, Export History to PDF or Excel. Application should include a ledger to capturing all transactions on the platform available to admin.