PracFolio
Abstract
PracFolio is a gamified investing platform, designed with the aim of helping prospective beginner investors practice and refine their investing fundamentals through a hands-on experience. It allows users to build and manage dummy portfolios using stocks or cryptocurrency. This platform serves as a safe and engaging environment, where users can explore and test their investing strategies losing large sums of money. The platform also provides lessons on the basics of fundamental and technical analysis, while also helping users track their progress and gain insights into their performance over time. Users are also able to engage in friendly competition by comparing their performance and portfolios with their peers. The primary quality attributes for the platform are Extensibility, Interoperability, and Modularity.
By simulating real-world investing, the platform aims to help users gain confidence and experience before committing real money to the market.
Author
Name: Aaditya Yadav
Student number: 48268790
Functionality
The complete version of PracFolio will offer a suite of engaging and appealing features designed to help individuals begin and refine their investing skills in a risk-free environment. Some of the features are:
- Simulated Portfolio Management – Users can buy and sell assets from stock or crypto markets. This creates a dummy portfolio for the users to manage. This portfolio reflects changes in asset values over time, including real-time profit and loss tracking, enabling users to monitor and adjust their strategies accordingly their investment strategies.
- Asset Buy/Sell Simulation – Users can simulate buying or selling various assets, allowing them to test out their trading strategies and methods and observe the outcomes without risking their real money. The data for markets can either be real-time or mock data based on historical trends. The aim of this simulation is to mimic the real-world conditions and movements as closely as possible enhancing the user’s learning and practice.
- Educational Modules – The platform provides interactive lessons and mini-tutorials about the basics of fundamental analysis, such as reading company reports or understanding market trends, and technical analysis, like using charts and various indicators. These modules are designed to make the financial concepts more accessible and understandable for beginners.
- Peer Comparison & Leaderboards - Users can compare their portfolio’s performance against that of their friends and other individuals on public leaderboards. This fosters a sense of healthy completion while also allowing users to learn from the strategies and trading decisions of others.
- Performance Tracking Console – A personalized console gives users detailed access to their historical and current trading activities. It includes charts and logs that display trade history, asset performance, portfolio growth, and technical indicators. It also provides tailored suggestions to help users improve their investing strategies over time.
Scope
The Minimum Viable Product (MVP) of PracFolio will focus on delivering the core functionalities of the platform. These would include:
- Simulated Portfolio Management - Users will be able to manage a virtual investment portfolio that updates asset values over time and display real-time profit or loss based on performance.
- Asset Buy/Sell Simulation - Users can buy and sell various assets, adding them to their portfolio. A fixed dummy starting balance will be provided to each user to use, and all transactions will reflect corresponding changes in the portfolio value. The asset data used for simulation can be based on either real-time or mock historical data.
- Performance Tracking Console - A simple console interface will allow users to view their portfolio overview, track past transactions, and visualize performance through basic charts and logs. This console will also help users analyze their activity and gain insights into their investments.
Quality Attributes
- Extensibility – Extensibility is a key focus for the platform as it is expected to evolve and develop beyond the MVP with additional features such as educational modules, social interaction components, and different asset classes. Its architecture should be designed in such a way that future functionalities and additions can be made without much refactoring of the code.
- Interoperability - The system needs to fetch data from external sources, like broker or crypto APIs. This fetching of the data also needs a fallback mechanism where if the primary source of data is offline, the system can fall back on secondary sources. This would also ensure flexibility in switching data providers or integrating third-party financial tools in the future. APIs should be accessed via clearly defined interfaces, allowing different data sources to be swapped or updated without affecting other parts of the application.
- Modularity - A modular architecture for the platform is essential to keep it maintainable and organized. The system should be divided into well-defined modules, such as portfolio management, transaction logic, and user interface components. This separation would allow each module to be developed, tested, and extended independently, thereby improving maintainability and enabling parallel development.
Evaluation
- Extensibility
- To test the extensibility of the platform, a new feature like a basic educational module or additional asset class will be implemented after the MVP is completed.
- The effort required to integrate this feature, along with any changes in the existing code structure, will be documented and evaluated. A low degree of code refactoring and integration effort will indicate high extensibility.
- Interoperability
- Interoperability will be evaluated by integrating a third-party API source for the raw data and demonstrating that it can be replaced with a mock or fallback source using the same interface.
- A simulated failure of the primary API source will also be conducted to confirm and to test and confirm that the fallback mechanism functions as intended without disrupting the overall functioning of the system. A successful and seamless switching of the data source would integrate strong interoperability.
- Modularity
- The system’s modularity will be evaluated through code review and testing. Each major component, such as UI and transaction management, will be developed separately with minimal dependencies.
- Unit tests will be written for each module and their ability to be tested in isolation will be used as an indicator of an indicator of a high level of modularity.