Inspiration
Several months into the COVID-19 pandemic, society still is reeling from its impact. Much of this impact can still be felt by local businesses, who struggle to turn in a profit in these trying times. As such, we hope to bring more awareness to our local communities by showing the local businesses in the area and other relevant information, so people can go support them.
What it does
BusinessLoc is a cross platform app that shows users of local businesses in the area and any relevant information about the business, including address, contact information, description, images, and more. Besides just publicizing these local businesses, we are also offering the opportunity to donate to the place by leveraging Stripe!
How We built it
We created Business Loc with Google’s cross platform framework, Flutter. The map relies on the Google Maps SDK to visualize a geospatial view of the phone’s vicinity. A search bar is at the top to change one’s query of which local business they would like to search for while to the right, there is a slider where users can change the radius of the local vicinity that they would like to search in. Upon submit for the search bar, the application will send an HTTP request to a node.js server deployed onto Heroku. The node.js server itself will then call the Google Maps Places API to find local businesses based on the search query. Once that is done, markers are added on the geospatial view to indicate local businesses. When the marker is tapped, the app sends another HTTP request to the server if the place is in our MongoDB server and grab any relevant information that can be displayed onto a draggable sheet.
Challenges I ran into
At first, we ran into the problem of which API to use because originally, we wanted to use an API from Microsoft Azure. Unfortunately, it did not work, so we switched to Google Maps Places API, which was much easier to use. Later, we had issues with authentication because of source control problems. In addition, we found out that the API for Google Maps was finicky to use since it would not always return results if it could not find any. The slider was also tricky to figure out, trying to configure its value to valid units that could be sent to the Places API.
Accomplishments that I'm proud of
For some of us, this is our first hackathon, so it was a good experience to be proud of. This was the first time we created our own backend with node.js and connecting it to MongoDB. This was also a good opportunity to become more used to source control for some of us.
What I learned
For the backend team, we learned about connecting the server to MongoDB.
For the backend team, we learned about connecting the server to MongoDB and then deploying it to Heroku. For the front end team, there were setbacks with the Google Maps API with visualizing before making the API requests, but these were eventually overcomed.
What's next for BusinessLoc
BusinessLoc can see further improvement by optimizing the Stripe donation process. At the same time, we would like to offer authentication for the application and allow it to be accessed by both consumers and local businesses owners, where each user will be sent to a different landing screen. While consumers will see the map, local businesses owners can change/add any relevant information that the consumers can see.
Built With
- auth
- express.js
- firebase
- firestore
- flutter
- google-cloud
- google-maps
- google-maps-places-api
- heroku
- mongodb
- node.js
- stripe
- stripes
Log in or sign up for Devpost to join the conversation.