# cryptsao mobile app
An app for users to buy and sell crypto tokens.
## Onboarding
- The first time a user gets into the app/website, they should be presented with onboarding screens.
- Crypto at your fingertips: Buy and sell instantly with Mobile Money
- Secure: Secure your account with SMS verification
- Instant checkout: Sell now and receive cash directly in your momo account.
- There should be options to skip the onboarding and go straight to registration page.
## Registration
- A user logs in with the following information
- phone number
- full names
- password
- They will receive a `6 digit` verification code via `sms`.
- They will verify this code before continuing to home page
## Login
- A user logs in with a `phone number` and `password`
- If their session has expired, they will need to reverify again.
## Password recovery
- The user will enter the phone number associated to the account and will receive a code to use for password recovery.
- If the code is valid, they'll move to a screen to set a new password.
## Home page
- show the current user profil
- show the curren't users balance (the sum of all their crypto balances)
- show a list of cryptocurrencies and their current market price. Every line should include
- crypto name
- crypto logo
- trend (small graph of the market changes)
- market price
- percentage change (green for increase, red for decrease)
- When you click on any crypto, it should take you to the page for that coin.
- There should be a bell icon for notifications. (with an indicator to indicate the number of notifications)
## Coin page
- show the name of the coin e.g (Bitcoin BTC)
- show the market value including percentage price change (with green and red indicators)
- show the full graph of the price (configurable by time)
- show a button to BUY and SELL
## Buy page
If the user has not verified their account, show an warning that says "unverified accounts cannot buy/sell. Verify now"
- show the coin you are buying
- show the maximum you are allowed to buy
- show the price of the coin in relation with local currency (e.g BTC/XAF)
- enter the price you want to buy
- if everything is ok, show progress bar and success if complete
## Sell page
If the user has not verified their account, show an warning that says "unverified accounts cannot buy/sell. Verify now"
- show the coin you want to sell
- show the price of the coin
- show the balance you have in your wallet
- enter the amount
- show how much you'll receive in local currency
## Wallet
- show total wallet value
- show the coins they have and their amounts
- show your transaction history
## Transfer
Here, you can transfer coins to/from an external wallet.
Deposit
- choose a coin
- generate an address
- send the address to the user
- show progress and completion notification
Withdraw
- choose a coin
- enter an adress
- enter the amount
- send the coins to the address
- show progress and completion notification
History
- show transfer history
- the type of transfer (withdraw/deposit)
- the amount
- the coin
- the status
- the date
- etc..
## Profile
- standard profile stuff
- A verified badge (denotes that the user has been verifieied)
- A button to verify the user (will take you to verification page)
- show settings
- currency
- notifications
- session timeout (how long before auto logout)
- etc..
- signout
## Verification page
- show the list of verification requirements
- Personal Info (names, address)
- National ID card or passport (upload front and back)
- Facial recognition (upload self portrait)
- The verification will go from one step to another
- once done, let the user know that we will manually verify the user and get back to them.
## Notifications page
- clicking the bell icon on the home page should take you to notifications page
- here, you see a list of your notifications
- ability to clear all notifations
- there should be a distinction between read and unread notifications