DuckMon Stock App

TL;DR Web app built to track and monitor stocks listed in Bursa with latest prices web scraped in real-time. The website is usable but still under development. Future features include integration with the overseas stock market and UI for mobile. Tech stacks: VueJS, NestJS and MongoDB. Visit the website here.

2020 was a remarkably difficult year — fortunately for me, the lasting impact it made on my life was actually good so far. Like many others, I got into baking bread during the lockdown, as well as investing. There were probably many other hobbies I’ve picked and dropped over the year but I can’t recall.

COVID-19 pandemic triggered a freefall in the stock market. As a cheapskate loving cheap stuff, this whole thing got my attention. Coincidentally, I was already looking into investment and have already read a few books on investing before the stock market crashed. The crash was what ultimately brought me into the stock market.

With the FOMO (fear of missing out) and the volatility of the market at that time, I was eager to invest in the stock market as soon as possible, so I went to open a brokerage account at the nearest bank without considering much. Later I realized this was a huge mistake, the brokerage account I opened had high fees compared to other brokerages. I eventually switched to another brokerage with lower fees, but the whole thing created a huge trouble for me on top of many existing ones.

Problem with Stock Brokers

After transferring my share to the new broker, I lost all history to my previous portfolio. The cost of the stocks will not be synchronized, instead, the cost will be the price of stocks on the day of transfer. Even without the transfer, the systems stock brokers offer usually does not factor in the fees into the cost of your stocks. They also don’t keep track of dividends received for you.

There was a peak time where I was holding more than 10 stocks (again, FOMO…) and it was a pain to monitor them with spreadsheets. So, I took the opportunity to build a website to help me track my portfolio more easily. Basically a spreadsheet but it does one extra thing, it scrapes for the latest stock prices so you can clearly monitor each stock every day without manually inputting the recent price.

The App

Frontend – VueJS

At the time this project was built, I didn’t really have many front-end tools in my toolbox. Prior to this, I’ve only used ReactJS and VueJS, but I’ve had more experience in VueJS so I went with Vuejs.

Backend – NestJS

After many days (possible weeks) of reading and googling, I narrowed it down to two choices, ExpressJS or NestJS. As a beginner without experience, I actually thought NestJS would be a better choice despite being more complex and takes more time to learn. The thing with ExpressJS is that it is very flexible and pretty much lets you code it any way you like. Without experience, I would make a whole mess in the codebase as I do not yet know the best practices to code in ExpressJS. NestJS pretty much forces you to follow their best practices so I would probably still make messes, but more manageable.

Database – MongoDB

To be honest I didn’t think this is a wise choice now. Almost all data in the app is relational, so I should’ve just went with a relational database but I thought it would’ve been a good learning opportunity for me to get some experience in MongoDB as I’ve already done multiple projects using old-school SQL databases.

The name – DuckMon

Around the time when I first developed the site, I came across a youtube channel and found this video particularly interesting. It was a video of hatching duck eggs using a rice cooker. A few similar videos in the channel were about taking care of chicks and ducklings, and I binge-watched all those videos despite being sleepy after pulling an all-nighter programming. So I thought since these videos were watched during the development process, why not have them in the name of the project. DuckMon, with Mon being monitor since the website will be used to monitor stocks.

Design

Like many of my other personal projects, I have no plans to commercialize this, so I didn’t hire a designer. This is why the app doesn’t have a nice UI.

Development

At the time of writing, this web app is actually still an ongoing project. Many of the intended features still do not work especially on the mobile site. However, I’m not actively developing it now as it pretty much already does what I need it to do. In fact, I use this exclusively now to track my portfolio and only use my stock broker’s app to buy/sell stocks. I am however looking into investing in overseas markets mainly the US, so the ability to track US stocks may come very soon.

If you’d like to have a look or want to use it to track your portfolio, here’s a link to it.

You've reached the end of post.

See All Projects