Basic Components of Trading Platform
Posted By : Manish Kumar Narang | 30-Mar-2018
Different Components -
1) User Interface - How your traders see your exchange. Must be user-friendly and intuitive. UI needs to be mobile friendly too. It should have following functionalities :
- Register and access an account (modify userDetails)
- View current order, past transactions, balance , statistics etc
- Analytics (optional)
- Place buy and sell orders
- Payment (Fiat, BTC, Eth)
- Wallet Management
- Access the support mechanism (communication with the admin)
2) Admin Interface – To Control and Manage the exchange. It should have following functionalities :
- Editing the trading fees (in percentage)
- Approving user accounts for trading (User Management View – Active/Inactive user, send email functionality)
- Approving transactions (only deposit request)
- Addressing the support requests raised by users (optional)
3) Trading – Transaction Management – accesses the order book, matches buy/sell orders, executes transactions and calculates balances
4) Wallet - Multiple currency wallet with minimum basic functionality
The manner in which these components are shown and defined above, one can easily picturize a microservice architecture for development. The development process should take between 3 to 6 months depending on the complexity of the trading platform.
Basic Schema
User : id, userName, email, phoneNo, status (active/inactive), Country, createdOn, passwd
Role : authority (String) {admin, user, manager}
Transaction : currency {Fiat, Crypto}, exchangeRate (Null for Fiat), fee (in percentage), amount, buyer (Null for Fiat) (user), seller (Null for Fiat) (user), status {success, failure, pending, cancelled}, grossAmount, transactionId
User has many Role
User has many Transaction
User has many Wallet
AuthToken : authType, token, userId
Message : subject, to , from, body , dateCreated, status, isChecked
Wallet : id, userId, balance, shadow_balance, walletType
Currency : type, name, symbol, fee
Order : amount, fee, currencyId, orderType, dateCreated, status
TraderAd : minTrans, maxTrans, totalSupply, currencyId, traderName
Cookies are important to the proper functioning of a site. To improve your experience, we use cookies to remember log-in details and provide secure log-in, collect statistics to optimize site functionality, and deliver content tailored to your interests. Click Agree and Proceed to accept cookies and go directly to the site or click on View Cookie Settings to see detailed descriptions of the types of cookies and choose whether to accept certain cookies while on the site.
About Author
Manish Kumar Narang
Manish is an experienced Backend Developer with several years of industry experience in the IT field. He possesses a wide range of skills, including expertise in Backend languages like Core Java, J2EE, Hibernate, Spring/Spring Boot, and Python. Manish is also proficient in relational databases such as MySQL, PostgreSQL, and Oracle. He has hands-on experience in API implementations, web services development, testing, and deployments. Manish has contributed to various internal and client projects, including PMO, Catalyst, Communication-Scaffold, Oodles-Dashboard, and Devops Support, delivering significant business value. He is known for his innovative mindset and excellent problem-solving abilities. He keeps himself updated with new technologies by reading about them. He is skilled at collaborating closely with clients to define project scope and requirements, establish project timelines and milestones, and manage expectations. Manish conducts regular project status meetings, ensuring regular updates to clients and stakeholders regarding project progress, risks, and issues. Additionally, he serves as a mentor and coach to junior developers, offering guidance on project management best practices and fostering their skills development.