
Inspiration
With the rise of non-commission brokerages, more teens are investing their hard-earned money in the stock market. I started using apps such as Robinhood when I was in high school, but I had no idea what stocks to buy. Trading securities has a very steep learning curve for the average joe.
We see that lots of new investors have very little experience in the market. Communities like Wall Street Bets developed which further encourage wild speculation. Many open margin accounts, take out huge loans, and incur more risks without their knowledge. Also, many of these new investors are not financially savvy, nor are they looking forward to learning about finance. We wanted to build an app that helps new investors reduce risk and gain knowledge about what they own without much financial knowledge. Hence, we came up with a Social Media app, Due Diligence!
What it does
Due Diligence allows the user to take a photo of everyday objects: car, laptop, fridge, calculator, collection of watches, etc... and recommends stocks associated with the images. For instance, if you upload a photo of your car, our app will recommend stocks like Tesla General Motors, and Ford. Our object detection model also has brand name recognition. Taking a photo of a Macbook will lead our app to recommend the APPL stock. By recommending companies that manufacture the products and services Due Diligence users daily use, we believe that our userbase can better evaluate the company, its business model, and its position in the market, and come up with a reasonable and safe decision on whether to buy the stock or not.
Our application also has a chat feature. When a user registers to DueDiligence, we ask them questions about their investment strategy (growth, value) and their investment horizon. After a user got a stock recommendation from our app, the user can choose to chat with another person looking to buy the same stock. We math the user with a partner that has similar investment strategies and investment horizons. They are able to use commands to get more specific information about a stock (get recent news articles, get its price, get its EPS this quarter) and we generate tailored questions for them to talk about based on their investment strategies.
How we built it
We used React Native for the front-end, Flask for the back-end, and Postman for testing.
1. Back-End
The back-end dealt with managing users, saving investment strategies, classifying images to stock tickers, and matching/managing the chat. We used MongoDB Atlas to save all the data from the users and chat, and to update the front-end if necessary. We also used the IEX Cloud API which is an all-around stocks API that gives us the price, news, ticker symbol of a stock.
2. Front-End
We used React Native for the front end. We were experienced web developers but had little experience in app development. Being able to use web technologies sped up our development process.
3. Google Cloud Vision API
We used the Google Cloud Vision API to detect multiple items and logos in an image. After getting the tag names of the image, we ran it through our classification model to the image into ticker symbols.
4. Classification Model
The IEX Cloud API could search stocks based on their sector, so we had to relate products to sectors. This is where Naive Bayes came in. We weren't able to find a dataset, but we created our own data that trained the Bayes net table using the posterior probabilities. We built our dataset by figuring out how products matched with the business sector (mobile phone -> tech, sports car -> automobile industry, etc...)
Challenges we ran into
The problem of relating products to related companies was a very hard problem. There wasn't an API for it. We resorted to using a machine learning model, but that said, it was very challenging to think of a solution that mapped it in a better way. Also, we were novice app developers. We learned how to use reactive native from scratch which was very time-consuming. Finally, working remotely with everyone was very challenging. We solved this problem by using discord and getting into team calls often.
Accomplishments that we're proud of
We are proud that we were able to think of new solutions to problems that haven't been addressed. Mapping images to stock recommendations have not been done before, and we had to build our Bayes model from scratch. Also, we are proud that we learned to build a mobile app in less than 48 hours!
What we learned
We learned new technologies such as React Native and new models like Naive Bayes. Most of all, we learned how to work together in a challenging situation, and come up with a program that we are very proud of.
What's next for DD - Due Diligence
We ran out of time while finishing up the front-end, back-end integration, so finishing that will be our top priority. Other than that, we think expanding our services beyond NYSE and NASDAQ by integrating foreign exchanges into our app would be useful. Also, we think adding new asset classes such as Bonds and ETFs are the right step forward.

Log in or sign up for Devpost to join the conversation.