# Fapzay Join the fun on Fapzay and stand a chance to get away with something huuuugge! ## How does it work? 1. A new pool of users will be opened every midnight at 00h:00m:00s and will be closed at 22:00:00. You join this pool with a very small fee. 2. If for example, `N` people have joined the pool at the end of the day, 1 person will be selected `randomly` to go away with all of the money contributed. For example, ``` begin: total number users = 100 fee per user to join the pool = 50frs => total amount in the pool = 100 * 50 = 5,000frs Then, winner = RAMDON person end ``` 3. A new pool will be opened at midnight. ## Authentication ### Registration - Users register with a phone number and password. - The phone number will be verified by SMS with a code valid for 3 minutes. - The user can request a new code a maximum 3 times within 10 minutes. After which, a cool down of 10 minutes must be enforced. ### Login - Users log in with phone number and password. ### Set username - After login, the user will set up their username if it has not been set before. - The user cannot proceed without a username. ## Wallet A screen that allows the user to manage their funds. - It should show the current amount in the wallet. - It should provide means to deposit and withdraw funds - It provides means to deposit and withdrawal is via mobile money - Deposit: It takes the amount and phone number to take funds from. - Withdraw: It takes the amount and phone number to send the funds to. - Each of these transactions should show appropriate loaders and notifications. - (Promotion): Every 10 pools you join, you get 500 back cfa. - Show a progress to win this promo! - It also lists the users transactions. `deposit, withdraw, join pool, promo` ## Pools List all the pools - The details of each line shoud include - status: (open/closed/cancelled) - date - pool fee: Fee to join the pool - pool total: The total prize in the pool. => number of users * fee - won/lost: Whether the user won the pool or not. - Clicking on the pool should take you to the pool details page. - A toggle to see only the pools the user has joined before. ## Pool Detail This page shows the details of the pool including - Date created - status: open/closed - pool fee - pool total - won/lost (a pool that you didn't join should not have this) - The members of the pool - A share buton (to share the results) ## Home This page shows the current open pool - It should show the time left till the pool closes - It should show the fee to join. - Provides a means for the user to join the pool - The fee will be taken from the users wallet and should show error if not enough funds or if something goes wrong. - Once joined, ther user should see the details of the pool (see #Pool Details above) - If the poool is closed (time elapsed), show if the user has won or not ## Leaderboard This page shows a list of top ranking users. Display ther usernames and their rank You can rank by - pools joined - amount earned (default) **AND** sort by - week (default) - month - all time ## Profile and Settings Profile: - Show the total number of pools joined - Show the total amount earned to date - Show profile picture - Show username Settings: - Change phone number - Change password - Change username - anonymous - Profile: If ON, you can't see the users profile - username: If ON, you see a hashed version of the useranme - Notification toggle: (default for all is OFF) - User joined pool: Notifies you if a user joins the pool you are in - New pool opened: Notifies you every time a new pool is opened - Pool closed: Notifices you when the pool you joined is now closed - etc..