Inspiration
The inspiration for the project was a shared dilemma that our group uncovered while brainstorming. When discussing what to build for this hackathon, each member expressed a similar sentiment. Each of us had been wanting to invest in the stock market for a long time but had refrained over fear about our lack of knowledge, and lack of time to dive deep and gain the expertise necessary to make sound investments. We decided to try to address this issue by attempting to solve question 1 and build an easy-to-use stock recommendation app.
What it does
StockBox takes the income and amount willing to be invested of a user and outputs a list of stocks they should consider investing in. The list of stocks was filtered based on a set of well-respected metrics for analyzing the viability of a company, along with professional analyst recommendations. The portion of stocks that belonged to different risk pools was based on a ratio of the amount the user is willing to invest and their income. We started with widely accepted excepted ratios for allocating between large, mid, and small-cap stocks. We then fine-tuned these allocations in accordance with how much financial weight the investment amount carries for the user, based on their income. The final output is a list of stocks diversified among various ranges of market caps, with strong fundamentals and high upsides.
How we built it
StockBox is a web application. Our front end was built using javascript, HTML, and CSS. We used the React javascript library to assist in structuring this front end. Our back end is written in Python, using the Flask framework to manage the communication between and front end. The data is being pulled from finviz.com, using custom web scraping scripts we wrote.
Challenges we ran into
There were three main challenges we ran into in our development process. The first was finding a quality data source, that had the metrics and filters we wanted. There were no great out-of-the-box solutions or APIs that addressed our exact needs, so we had to essentially build our own.
Our second main challenge was finding the correct set of filters by which to retrieve our final stock recommendation list. There was a wide variety of metrics we could filter by, and it was difficult to pin down the fundamental features that made a stock viable. We solved this by deciding to choose a few simple metrics that are nearly universal indicators of company health, and then rely on professional analyst ratings to further distinguish between stocks when necessary.
Our final main challenge was deciding how to present our stocks in an intuitive way that did not overwhelm financially inexperienced users with information. We wanted people like us to be able to draw immediate value from the app with just a few clicks of a button. We solved this by running through multiple iterations on what our UI could look like and focusing on keeping everything as simple as possible when it came to presenting information.
Accomplishments that we're proud of
We're very proud of the pace at which we iterated. We went from having nothing on Saturday morning, to having a full-fledged functional application in just 2 days. And we did so while navigating, and not sacrificing features and not sacrificing features we planned on implementing.
We're also proud to have a baseline application that is extremely extensible from both a product and engineering perspective. Adding more advanced filters and greater diversity to our recommendations would be a relatively simple addition for us, and we kept extensibility in mind throughout our entire development process.
What we learned
We learned that structure is the key to a rapid development process. On our first day, the scattershot nature of our workflow hurt us and made it difficult to collaborate. Getting on the same page as a team, and using workflow management tools were essential in helping hs get to the finish line.
We also learned that the stock market is not nearly as daunting as it sounds. By taking a first-principles approach to stock analysis, and focusing on simple fundamentals, we were able to develop something that could be of use to people who share our apprehension about investing.
What's next for StockBox
Our next steps will be mostly adding additional useful features. Giving users the ability to keep track of portfolios they create, and perhaps link our recommendation to some kind of brokerage services. We would also like to get more precise on our filters and improve the customizability of the overall risk the user is willing to accept. We would also like to make the app more user-friendly through a natural language interface that allowed users to filter stocks based on human questions.
Log in or sign up for Devpost to join the conversation.