My first attempt at creating a webapp to track the performance of a portfolio ended up being quite simple, almost to simple, this left me with the desire to improve it. So I set out to redesign the portfolio tracker, add new features to visualize the performance of the portfolio and finally add scheduled tasks for keeping up to date with the daily performance of the portfolio.
Finally I would like to point out that the repository for this project is kept private since I built it on top of the repository for my personal website. With all of that said, let's dive in!
The project was built using:
To create the webapp I started by drawing multiple versions of how I wanted the website to look like. Once I had a design that I was satisfied with, I proceeded to create the website using HTML and CSS just to get a feel for the design.
After the design phase of the website was completed I moved on to implement the backend, starting with the representation of individual stocks as “Data Transfer Objects”. By doing so it made it possible to represent the portfolio as the collection of stocks instead of having to create a new object that represents the portfolio. With the DTO being completed I could move on by creating the controller for adding stocks to the portfolio as well as the scheduled service meant for updating the evaluation of the portfolio.
Finally the only thing left to do was to setup the SQL database by creating a table that held every single stock in the portfolio as well as a second table to track the daily performance of the portfolio.
Here is a screenshot of the final product.
Some improvements that can be made in the future are to display the “total performance (%)” or “annual performance (%)” as graphs, perhaps their could be a button that switches between the different graphs that are being displayed. With that said, as of now the current version of the application is good enough as an MVP.
Written on the 2021-02-02
© 2020 Georgios Davakos, All rights reserved.