Complete betfair system, with user management and storage in binary tree and multilanguage.
**Specifications both in English and Spanish.
Specification file with images is attached in advanced options.**
1. Bet platform system. Complete Betfair
2. User Management in binary tree
1. User management associated with binary tree
1. User CRUD
3. Main display registration / login (StartPage and RegisterSecondPage)
4. Personal user page (UserMainPage)
1. Personal Interface
2. User search
5. Events, categories and subcategories (UserMainPage)
1. Categories and events
2. Event search
3. Place a bet
1. CRUD events, categories, subcategories
2. Event search
3. Bet search
6. Cash management and payments between systems
7. Money transfer page (TransferMoneyPage)
8. Settings page (ConfigurationPage)
9. Periodic Scheduler
**1.**** ****Bet platform complete system Betfair**
Platform to manage bets between users, under the Betfair system on a series of events organized by categories and subcategories. Multilanguage.
- The commission to be deducted will be configurable.
**2.**** ****User Management in binary tree**
User management associated with binary tree
- All new user (B) is registered with the invitation of a previously registered user in the system (A).
- When the user (B) is registered, as a parent is assigned the ID code for the invitation (id (A)).(A) can have as many guests as you want, so your tree will be unlimited.
- Each user (B) will have a field idUserFather (A), another idUserUp (the node immediately above), idUserRight (his lower right node) and idUserLeft (his lower left node).
- The tree must associate and locate new registered users in the network, and must be efficiently [url removed, login to view] order of location for new nodes will be from left to right on the first space of each branch, balanced, always filling before the least deep leves, achieving a more geometrically balanced tree as possible.
- For each user, the number of direct children the user has on their network will be shown (guests).In addition, the number of indirect children (all accessible from your idUserLeft node and idUserRight) you have in your network will be shown in a variable (childrenNumber).
- CRUD users.
**3. ****Main display registration / login** **(StartPage and RegisterSecondPage)**
Form initial user registration. Secure connection (https).
Fields: email, password (repeat password) and invitation (will be idUserFather).
After clicking on register, a second screen will be displayed, which includes a form with the following fields: name, surname, national-id, username, password, phone, nationality, residenceCountry, address, city, postalCode, genre, birthday, singInDate, BankAccount, paypalAccount, creditSystemAccount.
In our proposal, each user can have two tables in relation 1-1: User and UserData:
User table fields: id, idUserFather, idUserUp, idUserRight, idUserLeft, childrenNumber, idMessage.
UserData table fields: id, name, surname, national-id, username, password, email, phone, nationality, residenceCountry, address, city, postalCode, genre, birthday, singInDate, BankAccount, paypalAccount, creditSystemAccount, idUser.
For each new registered user, your invitation code is assigned to your table idUserFather field. Besides this, you must assign as idUserUp the first available space on the tree with idUserFather origin.
With each new user the value of the user field childrenNumber father (idUserFather) must be increased. ChildrenNumber is the total number of users in your personal tree branch (all user that can be reached through idUserLeft and idUserRight).
- Log-In (StartPage)
Form at the same Register main screen, from which a secure login is peformed (https).
Add ability to remember the username / password, and recover the password by email.
**4.** **Personal user page (UserMainPage)**
- Personal Interface where the following information is displayed:
Credit in your account.
Number of users of the Son (B) (users who were registered with the invitation (idUserFather (B) = id (A)).
Number of users in the branch of your personal network (any node accessed from idUserRight or idUserLeft).
Number of active bets in the current month, with the event finish date and the value of the bet: proposed result, betted amount and the ratio.
A list of configurable number of total bets made by the user during the current month.
When an event finishes, indication that it has completed and the result: betted value, winned value and ratio.
At the end of the month, this information goes to the history list (with the historical of the rest of the bets).
- User search:
Search criteria: username, name, email, userFather
Results table columns: name, username, email, userFather
**5.** **Events, categories and subcategories (UserMainPage)**
- As many levels of subcategories as you want, up to a maximum of 20.
Example of nested subcategories: Football> Europe> England> Premier League.
Within the last category the events will be shown.
- A separate category should be "Lottery". It will have a string indicating the prize draw and the draw date. When the draw date reaches, a payment event is chosen randomly. A user can make multiple payments at different times for each draw.
- Interface to display the categories of level 1 with a list of a configurable number of events with the highest number of bets of any internal subcategories.
- The title of each category should link to a screen containing a number parameterized events with more bets on any internal subcategory (this operating model continues successively until reaching the last level depth).
- Next to each category shown, two columns (number of bets, event finish date and, in the case of 1X2 results, the ratio).
- Search for Events:
Search criteria: event, category / subcategory, date range, ratio
Columns table results: event, category / subcategory, event end date.
- Screen for placing a bet in an event.
Information to display: bread-crumbs to the event, available credit on the account of the user, event name, finish date, number of bettors, possible types of bets for this event with their current rates at the time of placing of the bet .
- CRUD events, categories and subcategories.
- Bet search:
Search criteria: user, event, category / subcategories, date range. Columns table results: betted amount, ratio applied, user, event, category / subcategories, bet date.
- Event search:
Search criteria: Category / subcategories, date range.
Columns table results: event, category / subcategories, date.
**6. Cash management and payments intersystem**
Each user will have a credit account, from which you will manage the collections and payments related to the bets.
**7. Money transfer screen (TransferMoneyPage)**
Screen to make transfers between credit account and one of the account types: PayPal, credit card (bankaccount field of the UserData table).
**8. Settings page (ConfigurationPage)**
Editing your personal information.
Fields to change password, BankAccount, paypalAccount, email, phone, residenceCountry, address, city, postalCode).
**9.** **Periodic Scheduler**
A scheduler has to be implemented that allows the periodical launch of tasks.