We wanted to create something that would impact peoples lives. With the recent market fluctuations and recession scares, a stock portfolio optimizer would be the best way to go.

What it does

The app has several pipelines which stream news articles and stock data into our database. The articles are ran through Azure's Cognitive Services to find the sentiment behind it. The sentiment metric is then annexed to our portfolio optimization algorithm. Users can create an account on our platform and pick 5-15 companies to see the magic work!

How we built it

The web stack was created using Vue.js, Node.js, MongoDB, Firebase and Chart.js. The views themselves use HTML and CSS along with JavaScript since it is rendered in Vue.js. The data pipelining and analysis uses Python in the back-end. Finance news is taken from Yahoo Finance as well as the ticker prices followed by Azure Text Analytics being used to find the sentiment analysis of the news articles. Another pipeline was also created which used Azure Bing Search and Image Search from Cognitive services in order to find the Nasdaq 100 companies and store the tickers, company names, and logos into the database. Both pipelines were made using the Apache Airflow dataflow platform to schedule cron jobs to update data daily. Portfolio Optimization calculations were primarily made using the SciPy and NumPy libraries on python and calculations were based on Markowitz Portfolio Theory also sometimes known as Modern Portfolio Theory. Design for the website was all done on Adobe XD which was then later used for translating into making the corresponding HTML/CSS, a prototype of what a mobile app version of our service was also made on XD.

Challenges we ran into

Learning a new framework always takes time. Vue.js and Vuex were a bit tricky to use at first but we were able to quickly pick it up. Connecting multiple platforms and hosting various services is tricky. Finance is a tough subject. Git decided to act up before submission and when recording the demo the mic was muted. Link to video that was after submission time for a real demo:

Accomplishments that we're proud of

We were able to create a clean and functional website which allows for user account creation, news updates, and portfolio updates. Being able to apply data engineering skills to have a end-to-end platform to have data aggregate on a given timescale. Creating custom made API's for getting information from Yahoo Finance

What we learned

This was our first time using Vue.js and it turns out to be a very functional and reactive front-end JavaScript framework. We learned how to authenticate users using MongoDB as well as store user states using Vuex. Utilizing dataflow tools like Apache Airflow to create dynamic data pipelines utilizing various custom (built by us) made methods and APIs

What's next for Finance Boi

We plan to extend the functionality to over 15 stocks as well as improve the optimization algorithm. With more time, we would add portfolio value prediction and algo trading using Deep Reinforcement Learning based bots. In addition to this, we will roll out with a mobile application for both Android and iOS devices and make the website mobile friendly.

+ 1 more
Share this project: