Inspiration

As someone who learns from real world experiences, I wanted to create an way to get real hands on investment experience, without being exposed to the large risk of personal stock investments.

What it does

Peak allows the user to view, trade, and simulate investing in a environment that mirrors the real stock market, all while engaging in friendly competition. Its simulated currency allows users to make investments, just like the real stock market investments. Peak displays real time data about investments, such as stock charts and changes in price. It further keeps track of users investments and updates on their investments. At any time, users can sell investments at the current market rate, in the same way as regular investments. Peak also keeps a leader board of the balance of all users on the current server, allowing friends to compete with each other on their own instances, or globally on a central one.

How we built it

The app is a react web app built on NextJS. The real time finance is provided scraping yahoos api through the node-yahoo-finance2 package. The database is custom implemented.

Challenges we ran into

We had a few data storage issues, leading to us implementing a watered down version of MongoDB. The yahoo api oftentimes had large slow downs, so the app was designed to display without the graphs rendered yet, and scale the data resolution to match the total time frame and avoid loading unnecessary data.

Accomplishments that we're proud of

Getting the database to work, storing and persisting data as long as the server remains up, real time data constantly updated. The UI design, particularly the login page, looks decent for an 8 hour competition.

What we learned

More mechanics of how to store data, about stock terminology, better ways to style our website.

What's next for Peak

Friends so you can compete without needing a dedicated server. Hosting this somewhere (probably Vercel or a Raspberry Pi). News stories and updates for related information on company stocks. Speeding up the app all around, particularity the graphs loading (maybe by caching results?) Overall polish with the designs, unclutter the ui, different fonts, design a logo, etc.

Built With

Share this project:

Updates