We wanted to create an easy to use application that does not only cater to consumers. Because of COVID-19, small businesses in the area are suffering, and it is hard for them to optimize their supply chain process. One of the team members went to a local donut shop and bought a few donuts early in the morning. The store owner seemed flustered and began mentioning how she has seen a recent uptick in sales for vegan donuts. She was not prepared to handle more vegan donut orders than originally predicted and wished she knew beforehand that this would be an issue. Thus, Junction was born. The goal was mainly to come up with an idea to help merchants not only gain business during a time that is tough for small business owners but also to provide merchants with data to optimize their supply planning. We created an app that can be accessed as a consumer or merchant. Both parties are benefitted by Junction.

What it Does

Consumption Junction, what is your function?

Junction connects merchants and consumers through one platform. On the merchant side, Junction tracks data of times for peak sales, commonly ordered meals, and regular orders, and displays these figures for the merchant to better optimize their supply chain needs. These metrics make it easier for a business owner to take advantage of specific foods or times that can increase their profits. On the consumer side, the app allows the user to view restaurants and order food as usual. Additionally, users are provided with updated data regarding time to receive an order, whether it be through dining in, pick up, or delivery. Aiding small businesses at a time of need is crucial, so the app from the consumer side ties in incentives to encourage users to try eating local.

How We Built It

The prototype for the consumer side of the Junction app was built using NCR’s Figma design. Junction was then implemented for both the consumer and merchant side using JavaScript and Next.js. NCR’s business services API was used to test API calls sent into the Next.js API routes. These API routes would connect to Google’s google-auth-library to authenticate a service account with a JWT, thereby allowing us to read and write off of a Google sheet as a backend for order history. Python was used to pull consumer data from Google Sheets to visualize the data for merchants through matplotlib.

Challenges We Ran Into

Overarchingly, challenges we faced included lack of time and lack of prior knowledge. As we came up with an idea, we recognized that it would not be the easiest to achieve with the computer science we strictly learned in school. In just a small amount of time, we would not only have to finish our project, but also learn about how to implement new resources along the way. This was a major challenge for us all.

Accomplishments that We're Proud Of

This was the first time any of us have used Figma to create a professional prototype. We are also proud that we were able to learn how to utilize NCR's API and quickly use it to implement a functioning web app. Most importantly, we are all proud of how we picked up skills we needed to utilize to reach our end goal. Once we had a theme and a goal decided, we went at it with full force. On several occasions, we stumbled and realized we did not know exactly how to attack an issue. One such example was when Google's 'google-auth-library' didn't interact well with Next.js's API routing. However, we did not waiver on our topic or end 'goal' just because of a lack of prior knowledge. When we had a lack of order data in our Google sheets backend, we created Python scripts to generate thousands of sample order data to input in the sheet. When we struggled to implement an ordering system into our webapp, we researched React hooks as a solution. When we dealt with time restraints, we honed in on what really matters to Junction--providing resources for local businesses. As time went by, we learned how to use several additional resources to complete our project within the time constraint and to the best of our ability.

What We Learned

We learned important design principles from NCR’s design workshop, which were immediately implemented when using Figma. From an NCR workshop, we also picked up the importance of making apps for consumers more exciting and interactive. Gamifying was a concept we were drawn to and decided to implement in our prototype. Our ‘game’ revolves around collecting ingredients needed to bake a cookie (which is the equivalent of completing the challenge). The ingredients are only collected by completing a series of events which include ordering from local restaurants, leaving reviews, and more. After completing these tasks, the user will receive a reward such as in-app credit. We also learned React hooks, Python's matplotlib, Next.js, API routes, Postman, and Heroku hosting.

What's Next for Junction

Now that we have thoroughly thought through our idea, we know just how passionate we are about it. We aim to extend and implement the functionality shown in the prototype on Figma. This would make Junction a more comprehensive platform, and hopefully a platform that is beneficial and aesthetically pleasing. Our overarching goal, throughout all changes, is to make sure Junction caters to communities and people that we feel need the most help at this time.

Built With

Share this project: