Inspiration

In today’s globalized economy, supply and demand is very volatile and many consumers rely on essential goods that vary in availability based on location and current events. Exasperated by the COVID-19 pandemic, many consumer goods such as toilet paper and hand sanitizer have become unavailable to people due to a lack of supply and a massive surge in demand fueled by hysteria. SupplySmart helps to rectify this problem by giving consumers real time information on availability and market demand of essential items.

What it does

Determines and predicts the current supply and demand of essential items in your location using Twitter posts analyzed by a Tensorflow.js NLP model and displays it on a personalized and intuitive web application. Users are able to see personalized items based on their location and income level and see the supply and demand percentage changes and relevant news articles, as well as popular locations where the item is not in as well as in stock (linking to a Google Maps page), and finally the days of the week when it be best to buy the item.

How we built it

Our application uses a novel 2 layer, 4 tier architecture. The user interacts with an intuitive and user-friendly web-based interface that follows Material UI guidelines and is powered by React. The data is sourced from a Rust processing engine, which connects to the data aggregation service via an efficient network protocol. The Rust processing engine is compiled to WebAssembly and is thus able to efficiently run entirely in-browser, for the optimal user experience. Our sophisticated TensorFlow deep learning model performs natural language processing to analyze thousands of Twitter posts to determine and predict the items that are or will potentially be in low supply, and the relevant geographic location, by extracting keywords regarding the item and the sentiment around that item to predict if the user's location is experiencing a decrease or increase in supply or demand for that particular item.

Challenges we ran into

During the creation of SupplySmart we faced many challenges. One challenge was the inefficiency of the network, especially under unreliable mobile data connections. To rectify this, we created a custom networking protocol utilizing state-of-the-art compression and concurrency. Another challenge we faced was that our initial processing engine did not meet our performance needs and expectations. This issue was solved by migrating the processing engine to Rust, which was better suited for performance-sensitive use cases.

Accomplishments that we're proud of

We are proud of building a genuinely useful financial application in less than 36 hours, using many advanced and intricate technologies, including web based deep learning, Rust processing engine, and all in a pretty neat React app with simple yet intuitive UI and UX.

What we learned

We learned a ton about about the interaction between Rust and JavaScript code. We also learned how to better incorporate Tensorflow.js to work with Twitter posts as we are relatively new to the field of natural language processing.

What's next for SupplySmart

We plan on quickly polishing up the app and making SupplySmart a legitimate application for the general public to use in this current time of need.

Built With

Share this project:

Updates