Typically spending money results in small amounts of change left over; change that is inconsequential. No one notices if a few cents are missing or not, but by slowly putting that change to use in something like investing in stocks, Bitcoin, or giving to charity, a few cents can very quickly build up to something that makes a difference.

What it does

Stock Overflow provides an Android app for users to log into with their PayPal account, and then our server monitors any transactions they make. The "spare change" from each transaction is made available to invest in stocks and Bitcoin. The stocks are ranked based on our custom stock prediction algorithm to give the user an idea of where to invest. The app then provides a nice interface for monitoring their investments and what their space change has turned into.

How we built it

The Android app communicates with the server using Firebase. The back-end is developed with node.js and handles all of the PayPal authentication and transaction tracking using the PayPal API and also applies the stock prediction algorithm. The algorithm uses the Google News API to search up recent news articles about each company listed then applies sentiment analysis to the headlines using Indico's natural language processing API to see which companies are getting "good" and "bad" attention/public sentiment. The sentiment average is then displayed to the user on the app to help them make an investment choice. We pull down real time stock data from Google Finance using a community node scraper that we re-purposed. The Bitcoin exchange rate is obtained on the server using the Coinbase API and is passed to the app which then lists Bitcoin as a special investment option. The Android app then handles purchasing and tracking of stock and Bitcoin.

  • Firebase, PayPal API, Coinbase API, Indico API, Google APIs, Android, node.js, express.js

Challenges we ran into

We wanted to include Azure machine learning in the stock prediction algorithm but couldn't get very far with it due to time constraints. Another challenge was that some node.js community packages didn't work as advertised, forcing us to make adjustments and find workarounds. Also, many of the APIs that we planned on using (Bloomberg API for stocks, Facebook Graph API for searching for articles, etc) were not providing the functionality we needed, so we had to investigate other options, while some of the others that we did use limited the extent to which we could put the API to use, which again caused us to reconsider our design and how to approach creating our proof of concept.

Accomplishments that we're proud of

  • Successfully designing the entire application and dividing it up into modules between team members, and having them merge together (surprisingly) nicely at the end
  • Quickly finding alternatives every time we seemed to hit a dead end with an API (which happened a lot... Bloomberg, Facebook Graph, Coinbase...) instead of getting caught up on these road bumps
  • Mashing together more APIs that we can count and making it work!

What we learned

We all gained experience in some previously unexplored fields. All of us came in with different experience and by hacking together we not only learned a lot from our research and experimentation, but also from each other. Specific topics that some of us learned about are Node.js, server communication, Android UI design, and how to figure out a lot of APIs and very little time.

What's next for Stock Overflow

Sleep. And expanding on existing features! Right now the application is really just a proof of concept; it has the fundamental setup but leaves a lot of room for expansion. From customizing how your budget is calculated (Round to nearest cent? Round to nearest 10? 1% of transaction?), to where the money can be spent (Charity, stocks, etc), to analyzing and improving our stock prediction algorithm. There was slight influence on the stock prediction algorithm using Azure machine learning but due to time constraints we couldn't get very far with it so we pulled it out for now. Working with Azure is definitely part of the plan for the future. Overall, there's a lot more we could do.

Share this project: