---
# System prepended metadata

title: Fapzay

---

# 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..

