This app was born out of a desire to make promotion and advertising more accessible and more effective for local businesses, while keeping the platform straightforward and user-friendly. Initial ideas that fed into the creation of Spur included a very similar idea, but for restaurant delivery, as well as an idea for a chat room entered by physically scanning a QR code. Each of our previous ideas was centered around community, and it ended up converging to what would later become Spur. The plan changed a little bit from conception to implementation, since Spur is not just for businesses, but anyone that wants to promote something!

What it does

Spur uses QR codes to generate and display information regarding local businesses or other promotions. Users can create their own QR code by entering basic information about their promotion: a name, a brief description, a website URL, and an image to go with it. This data is used to generate a QR code which is stored on our MongoDB database, as well as saved on the user’s phone so they can edit the QR code in the future. Users can scan a QR code in the app through our main menu, and provided that QR code is in the database, the app will display the information associated with the promotion, in addition to a “visit counter” which tells the user the number of times that promotion’s QR code has been scanned. Both the generating and scanning processes are very quick and user-friendly, allowing users to jump right in!

How we built it

The frontend for Spur was written using Flutter with Dart. A number of packages were used to achieve the desired aesthetic and functional results, which have been documented on Devpost.
The backend (API) portion of the application was written using Node.js for the server and MongoDb for the database. We used the express.js framework to setup the server and handle all requests and routing of the API. A MongoDb free cluster was used to store the collections of all codes a and users documents.

Challenges we ran into

We had issues connecting the frontend with the backend for receiving and sending data. Flutter was also new to us, so we spent a great amount of time setting up our environments and centering a button on a page. We also chose our hackathon idea late, so we were creating the concept of the app while creating the app.

Accomplishments that we're proud of

We are proud that we were able to take the idea that we initially had and deliver a fully functioning application within the time frame of the event. Aswell, We are proud of our ability to pick up a new tech stack on the fly to fit the needs of our project.

What we learned

For three of us, it was the first time using Flutter and Dart, so we all got really familiar with the Flutter and Dart environments. We are proud of what we were able to achieve from learning a new language and framework in two days. As well, it was two of our first times focussing on frontend work in any capacity, as such we learned a lot about environment, goals, and requirements of working in frontend development.

What's next for Spur

There are tons of directions to go with Spur. Beyond refining and optimizing the app’s features, we would like to clean up and “prettify” the UI to make it a little bit nicer. Additional features that could be added include community reviews (currently our measure of quality is scan counts), a community message board to discuss promotions in the community, and a page to display top-visited promotions. There are tons of things that can be done with Spur; this is just the beginning.

Share this project: