--- robots: noindex, nofollow --- ## Social Trader Initial Specification # TRADEOR INITIAL SPECIFICATIONS ## Questions: - - ## Introduction Tradeor is a social trading platform inspired to https://www.etoro.com ## Glossary * [What is a Portfolio](https://www.etoro.com/customer-service/help/1151869692/what-is-the-portfolio/) * [Copy Trading](https://www.youtube.com/watch?v=MKl7sDUAEVA) ## Links to Frontend * [Frontend Development](https://socialtrader.pragmateam.dev) * [Page catalog](https://socialtrader.pragmateam.dev/docs/) * [Swagger API Schema](https://socialtrader.pragmateam.dev/api-docs/) **Access to these links are restricted. Use these credentials to see them:** **username:pragmateam** **password:tradeor2301** ## Links to Database Design(WIP) * [db designer schema](https://dbdesigner.page.link/msMHEfDRAU7YDd7r8) * [db design schema PDF format](https://dl.dropboxusercontent.com/s/j62z3f5tzrb4jzq/st2-dbdesigner.pdf?dl=0) ### MENU ![](https://i.imgur.com/fEj6Oqi.png "Menu" =150x) - Home The home page of the registered user - Portfolio The list of user's assets in his possession - Whatchlist Two list of people and markets beeing followed by the user - News feed Latest interesting news - Trade Markets The trade markets - Currencies The list of awailable currencies - Copy People The possibility to copy the trades of other users - Withdraw Funds The possibility given to the user to withdraw founds from user's account - Deposit Funds The possiblity given to the user to deposit founds on his accounts - Leaderboard Users that have their portfolios most profitable - Prizes Games Winners and prizes assigned - Contest Ongoing contests - Help Help and support - Tour Features tour - Settigns User's settings - Logout Exits the application ![Image 2019-08-07 at 8.42.29 PM](/Users/riccardo/Dropbox/_TOSPEC/images/Image 2019-08-07 at 8.42.29 PM.png) ## PAGES ### HOME PAGE ![](https://i.imgur.com/Yw2WJgZ.png) (/Users/riccardo/Library/Caches/com.linebreak.CloudAppMacOSX/draggingCache/Image 2019-08-07 at 9.23.33 PM.png) 1. User's Menu The menu appearing to the registerd user. Some features can be enabled or disabled based of the user's status 2. Trading lists Various trading lists divided in subcategories: Major,, Crosses, Cryptos, Exotics, Metals, Energies, Indexes, US Shares EU Shares 3. Timeline Timeline of various events happening on the site 4. News External general news that can influence stocks and trading 5. Whatchlist Markets List of current user's wathclist on markets 6. Whatchlist of People List of current users's whatchlist on people 7. Portfolio Current user's portfolio 8. Advertisement and guides Internal or external advertisement and guide space to promote interesting features and guide the user 9. ## PORTFOLIO ![](https://i.imgur.com/lvewOX0.png) 1. Portfolio header: contanins tabs with Overview History and Orders logging 2. Search by date range (put an "edit" for date range selection) (will be Post parameters) 3. Portfolio assets list/transaction list and order lists 4. Totals: Total avaiable equity/total allocated etc ## WATCH LIST ![](https://i.imgur.com/t82UOm1.jpg) 1. WatchList: all the market that user is following 2. WatchPeople: all people that the user is following 3. AddWatchList: container that would make the user able to follow a new market in order to add it to his/her watchlist market 4. AddWatchPeople: container that would make the user able to follow a new people in order to add it to his/her watchlist people *note: technically there should be some work around to reduce those 4 features to 2 and render pragmatically based on type prop* ## NEWS FEEDS ![](https://i.imgur.com/YOoBw4a.jpg) 1. CreateNewPost: creates a new post on the user feed that will show on other people (people who are followers to that user) timeline 2. NewsFeedTimeline: shows a news and posts from other people whom the user is following 3. CurrencyNews: list of the currencies, each one leads to a page where the user can explore news related to that currency ## TRADE MARKETS ![](https://i.imgur.com/whshYV5.jpg) 1. Filters to update the list of trade markets to show on this page. 2. A button that shows a pop up even more advanced filters for the list of trade markets to show on this page. 3. Cards that show the featured markets which are hand-picked by the TRADEOR staff. 4. Shows various types of markets: featured, market movers and crypto coins. The container will handle filtering as well. ## Currencies ![](https://i.imgur.com/mYexSxn.jpg) 1. CurrencyList: shows up a list of all available currencies with a toolbar above them that enables the user to apply filters to the list. ## Copy People ![](https://i.imgur.com/CSbR6l7.jpg) 1. ListAllPeople: renders featured & normal Tradeor presentational component 2. Tradeor Details: clicking on that would show a pop up with more detailed view of the tradoer with a button that permit the viewer from coping that person's investement ## Withdraw Funds ![](https://i.imgur.com/LGdSMXN.png) ![](https://i.imgur.com/1HDGsWR.png) ![](https://i.imgur.com/CEUeJir.jpg) 1. Input to type the amount you with to withdraw in your default currency. 2. A dynamic text label that tells the user the withdrawal fee of the current withdrawal. 3. "Cash" balance. The amount typed ni 1. must be <= than this. 4. Total user's equity (balance + allocated + profit). If clicked there it shows the breakdown. 5. Withdrawal policty text footer to always give access to the policies related to this process. 6. Next screen button to continue the process -- Second Screen 7. Back button to go to previous screen in the Withdraw process. -- Third Screen 9. Select to get custom feedback on why it is withdrawing it's money. 10. Fallback payment method TradeOr will use to send the payout. 11. Submit button to confirm the whole operation. ## Deposit Funds ![](https://i.imgur.com/OG3fUOF.jpg) 1. The amount of money to deposit. If the currency is different from dollar it will show a converstion to USD and the conversion rate of that calculation. 2. The currency in which you're going to deposit your funds. 3. The payment method you will use to deposit your funds. 4. The policy specifically related to the chosen payment method. 5. The continue button leads to a confirmation screen to make the deposit. ## Leaderboard ![](https://i.imgur.com/y6LWCWO.jpg) 1. A list of the top 10 users with the best performance during the last week period. 2. The user card where the avatar, usrname, number of investors (follows) and trades, along with a performance indicator, show up. The logged in user can start copying this user's investments right by clickng the "COPY" button that shows up on top of the avatar on hover. 3. A list of the top 10 users with the best performance during the last month period. 4. A list of the top 10 users with the best performance since the start of the service. ## Prizes ![](https://i.imgur.com/QrWC3R2.jpg) 1. Total amount the user has won in prizes that can claim. Claiming this will add the amount to the user's balance. 2. A short description about the Prizes page. 3. A grid list of all the prizes available for the user to work for. 4. When the user clicks on the Claim Reward buttno it will see if the prize applies to its account. ## Contests ![](https://i.imgur.com/fFSZVoi.jpg) 1. A feed grid of all the ongoing contests. 2. Button to go read all the requirements of the contest. 3. Link to the prizes page of this contest. ## Settings ### System ![](https://i.imgur.com/Sgimq1j.png) 1. Tab system to change between different settings screen. 2. Default language setting. 3. Show/Don't show the "Share" option while openin/closing trades. 4. Open/Close private messages. 5. Change the default dashboard layout of the user's home page. ### Account ![](https://i.imgur.com/21HSNX1.jpg) 1. Cover picutre setting 2. Profile picture 3. Button to update the cover picture. 4. Current fullname and button to open its editing. 5. Standard form with the core user information (username, location, email, password) 6. User's social media links. ### Trading ![](https://i.imgur.com/ICHto4o.jpg) 1. The default currency that the user would like to see prices in 2. Enable on click trades, on click being trading without further confirmation 3. Layout views for the portfollo page ### Notifications ![](https://i.imgur.com/CtbgeL1.jpg) 1. On/Off updates, promotions and tips notifications. 2. On/Off the notifications related to the people you follow or follow you. 3. Set up the settings related to your notifications settings at night time. 4. On/Off notifications by their type. ### Privacy ![](https://i.imgur.com/KyM5Oy3.jpg) 1. Enable/Disable user name visibility to others 2. Enable/Disable user's activities (like trading) to others 3. breif explination of the the difference between private accounts and public ones. ## User Features ##### Balance - A user can deposit funds into his/her "wallet" in mulitple currencies that will be converted into USD. - The user can withdraw any funds from his/her wallet at any time. ##### Trading - A user can open trades on any asset with the funds on his/her wallet. - A user can use leverages on any trade it wants to open. - A user can close at any time his/her open trades and take that money to his/her wallet. - A user can copy the trades of any other trader. He can copy all the currently open trades of the trader or only the trades opened after the copying started. He can assign a investment to the copying action. - A user can follow any market or user. Once followed, it will be added to his/her watchlist. - A user can make any of his/her trades public to his/her followers so they can react to it with Likes, Shares, or Comments. ##### Portfolio - A user can have a birdseye view of this investments on the portfolio page, including P/L stats and order history. ##### Social Trading - A user can Share, Like, or Comment on any of the trades that the user he/she follows have made public. - A user can see the profile of a specific market with historic data and basic stats, including a chart. - A user can see the profile of another trade with historic data and basic stats, including a chart. ##### Contests & Prizes - The site admins can create contests with prizes to be claimed. - A user can participate in any of theses contests and claim the prizes if it meets the criteria. ##### Settings - The user can define the notifications it will get. - The user can remove notifications from x time to x time (night mode). - The user can customize the layout of the start page. - The user can change the base currency in which to show the value of all assets and markets. - The user customize his/her public profile, including a cover photo, a profile photo, and social media links. - The user can set up privacy settings to show or not the trades by default. - The can change the base language and if he/she wants to receive private messages. ## ADMIN FEATURES (to be expanded) ### MENU - KYC - USER LISTS - TRANSACTIONS ​ ---- ## TECHNICAL SPECIFICATIONS (WIP) ![](https://i.imgur.com/0EUBUtp.png) ### FRONTEND - REACTJS - HOOKS - APOLLO CLIENT - STYLED COMPONENTS ### BACKEND - Nodejs - Apollo server - Graphql - Database : POSTGRES - ### SYSOPS - KUBERNATES - DOCKER - AWS ## Models ### User Describes the collection of information about a user's account. ![](https://i.imgur.com/0ssBbbs.png) ### Asset Represents the model of any asset that can be traded on the app. ![](https://i.imgur.com/uPXHJFv.png) ### TradePair A trade pair is the quotation of the relative value of a currency unit against the unit of another currency in the foreign exchange market. ![](https://i.imgur.com/w4tC0MJ.png) ### MarketGroup Used to group and categorize different assets and trade pairs. Each market group can have 0 to many assets or trade pairs. ![](https://i.imgur.com/Z4YXCPB.png) ### FluctuationRecord Used to describe the value of an asset at a specific point in time. ![](https://i.imgur.com/HgB4dGi.png) ### Trade Defines the schema of a trade. ![](https://i.imgur.com/qYA1pqz.png) ### Wallet Schema to represent a trader's wallet and the amount of available funds they currently have. ![](https://i.imgur.com/u0hLgGY.png) ### Portfolio A collection of all the trades the user has opened or done. ![](https://i.imgur.com/1ZZwUCa.png) ### TradeReaction Defines the reaction a trade can receive from any that can see the trade. ![](https://i.imgur.com/2f8OUag.png) ### Role Describes different user roles. ![](https://i.imgur.com/gCjgTc5.png) ### Setting Used to define the user preferences. ![](https://i.imgur.com/z47p59o.png) ### PasswordHistory Used to store records of the user's password. For security reasons it's recommended to keep a separate table to enforce stronger password policies. ![](https://i.imgur.com/rMnhDvP.png) ### Notification Used to store notifications the user can receive. ![](https://i.imgur.com/8te0HfL.png) ### Investor Used to define the schema of a user that is listed as an investor of another user. ![](https://i.imgur.com/5uPtxLp.png)